22
33FROM debian:jessie
44
5+ ARG EXTRA_PACKAGES
6+
57# Install required system packages
68RUN apt-get -q -y update \
79 && DEBIAN_FRONTEND=noninteractive apt-get -q -y upgrade \
@@ -22,27 +24,30 @@ RUN apt-get -q -y update \
2224 vim \
2325 wget \
2426 redis-tools \
27+ ${EXTRA_PACKAGES} \
2528 && apt-get -q clean \
2629 && rm -rf /var/lib/apt/lists/*
2730
31+
2832# Define environment variables
2933ENV CKAN_HOME /usr/lib/ckan
3034ENV CKAN_VENV $CKAN_HOME/venv
3135ENV CKAN_CONFIG /etc/ckan
3236ENV CKAN_STORAGE_PATH=/var/lib/ckan
37+ ENV CKAN_LOGS_PATH=/var/log/ckan
3338
3439# Create ckan user
3540RUN useradd -r -u 900 -m -c "ckan account" -d $CKAN_HOME -s /bin/false ckan
3641
3742# Setup virtual environment for CKAN
38- RUN mkdir -p $CKAN_VENV $CKAN_CONFIG $CKAN_STORAGE_PATH && \
43+ RUN mkdir -p $CKAN_VENV $CKAN_CONFIG $CKAN_STORAGE_PATH $CKAN_LOGS_PATH && \
3944 virtualenv $CKAN_VENV && \
4045 ln -s $CKAN_VENV/bin/pip /usr/local/bin/ckan-pip &&\
4146 ln -s $CKAN_VENV/bin/paster /usr/local/bin/ckan-paster
4247
4348# Setup CKAN
4449RUN ckan-pip install -U pip &&\
45- chown -R ckan:ckan $CKAN_HOME $CKAN_VENV $CKAN_CONFIG $CKAN_STORAGE_PATH
50+ chown -R ckan:ckan $CKAN_HOME $CKAN_VENV $CKAN_CONFIG $CKAN_STORAGE_PATH $CKAN_LOGS_PATH
4651
4752USER ckan
4853
@@ -78,6 +83,18 @@ RUN . /post_install_functions.sh && eval "${POST_DOCKER_BUILD}"
7883ARG CKAN_INIT
7984RUN echo "${CKAN_INIT}" | sed s@CKAN_CONFIG@${CKAN_CONFIG}@g > ${CKAN_CONFIG}/ckan_extra_init.sh
8085
86+ USER root
87+
88+ # Extra files in the filesystem
89+ ARG EXTRA_FILESYSTEM
90+ COPY ${EXTRA_FILESYSTEM} /
91+
92+ # Initialization that should be done as root
93+ ARG ROOT_INIT
94+ RUN eval "${ROOT_INIT}"
95+
96+ USER ckan
97+
8198ENTRYPOINT ["/ckan-entrypoint.sh" ]
8299
83100EXPOSE 5000
0 commit comments