diff --git a/ckan/Dockerfile b/ckan/Dockerfile index da268584..66836b06 100644 --- a/ckan/Dockerfile +++ b/ckan/Dockerfile @@ -2,11 +2,14 @@ FROM ghcr.io/mjanez/ckan-base-spatial:ckan-2.9.9 LABEL maintainer="mnl.janez@gmail.com" # Set up environment variables -ENV APP_DIR=/srv/app \ - TZ=UTC +ENV APP_DIR=/srv/app +ENV TZ=UTC + +# Set working directory +WORKDIR ${APP_DIR} # requirements.txt files fixed until next releases -COPY req_fixes ${APP_DIR}/req_fixes +COPY req_fixes req_fixes # Extensions ### XLoader - 1.0.1 ### @@ -24,40 +27,40 @@ RUN echo ${TZ} > /etc/timezone && \ if ! [ /usr/share/zoneinfo/${TZ} -ef /etc/localtime ]; then cp /usr/share/zoneinfo/${TZ} /etc/localtime ; fi && \ # Install CKAN extensions echo "ckan/ckanext-xloader" && \ - pip3 install -e git+https://github.com/ckan/ckanext-xloader.git@1.0.1#egg=ckanext-xloader && \ - pip3 install -r ${APP_DIR}/src/ckanext-xloader/requirements.txt && \ - pip3 install -U requests[security] && \ + pip3 install --no-cache-dir -e git+https://github.com/ckan/ckanext-xloader.git@1.0.1#egg=ckanext-xloader && \ + pip3 install --no-cache-dir -r ${APP_DIR}/src/ckanext-xloader/requirements.txt && \ + pip3 install --no-cache-dir -U requests[security] && \ echo "ckan/ckanext-harvest" && \ - pip3 install -e git+https://github.com/ckan/ckanext-harvest.git@v1.5.1#egg=ckanext-harvest && \ - pip3 install -r ${APP_DIR}/src/ckanext-harvest/pip-requirements.txt && \ + pip3 install --no-cache-dir -e git+https://github.com/ckan/ckanext-harvest.git@v1.5.1#egg=ckanext-harvest && \ + pip3 install --no-cache-dir -r ${APP_DIR}/src/ckanext-harvest/pip-requirements.txt && \ echo "ckan/ckanext-geoview" && \ - pip3 install -e git+https://github.com/ckan/ckanext-geoview.git@v0.0.20#egg=ckanext-geoview && \ + pip3 install --no-cache-dir -e git+https://github.com/ckan/ckanext-geoview.git@v0.0.20#egg=ckanext-geoview && \ echo "ckan/ckanext-spatial" && \ - pip3 install -e git+https://github.com/ckan/ckanext-spatial.git@v2.0.0#egg=ckanext-spatial && \ - pip3 install -r ${APP_DIR}/req_fixes/ckanext-spatial_requirements.txt && \ + pip3 install --no-cache-dir -e git+https://github.com/ckan/ckanext-spatial.git@v2.0.0#egg=ckanext-spatial && \ + pip3 install --no-cache-dir -r ${APP_DIR}/req_fixes/ckanext-spatial_requirements.txt && \ echo "mjanez/ckanext-dcat (GeoDCAT-AP extended version)" && \ - pip3 install -e git+https://github.com/mjanez/ckanext-dcat.git@v1.2.0-geodcatap#egg=ckanext-dcat && \ - pip3 install -r ${APP_DIR}/src/ckanext-dcat/requirements.txt && \ + pip3 install --no-cache-dir -e git+https://github.com/mjanez/ckanext-dcat.git@v1.2.0-geodcatap#egg=ckanext-dcat && \ + pip3 install --no-cache-dir -r ${APP_DIR}/src/ckanext-dcat/requirements.txt && \ echo "ckan/ckanext-scheming" && \ - pip3 install -e git+https://github.com/ckan/ckanext-scheming.git@release-3.0.0#egg=ckanext-scheming && \ + pip3 install --no-cache-dir -e git+https://github.com/ckan/ckanext-scheming.git@release-3.0.0#egg=ckanext-scheming && \ echo "mjanez/ckanext-resourcedictionary" && \ - pip3 install -e git+https://github.com/mjanez/ckanext-resourcedictionary.git@v1.0.1#egg=ckanext-resourcedictionary && \ + pip3 install --no-cache-dir -e git+https://github.com/mjanez/ckanext-resourcedictionary.git@v1.0.1#egg=ckanext-resourcedictionary && \ echo "ckan/ckanext-pages" && \ - pip3 install -e git+https://github.com/ckan/ckanext-pages.git@v0.5.2#egg=ckanext-pages && \ + pip3 install --no-cache-dir -e git+https://github.com/ckan/ckanext-pages.git@v0.5.2#egg=ckanext-pages && \ echo "ckan/ckanext-pdfview" && \ - pip3 install -e git+https://github.com/ckan/ckanext-pdfview.git@0.0.8#egg=ckanext-pdfview && \ + pip3 install --no-cache-dir -e git+https://github.com/ckan/ckanext-pdfview.git@0.0.8#egg=ckanext-pdfview && \ echo "mjanez/ckanext-scheming_dcat" && \ - pip3 install -e git+https://github.com/mjanez/ckanext-scheming_dcat.git@v2.0.0#egg=ckanext_scheming_dcat && \ - pip3 install -r https://raw.githubusercontent.com/mjanez/ckanext-scheming_dcat/v2.0.0/requirements.txt + pip3 install --no-cache-dir -e git+https://github.com/mjanez/ckanext-scheming_dcat.git@v2.0.0#egg=ckanext_scheming_dcat && \ + pip3 install --no-cache-dir -r https://raw.githubusercontent.com/mjanez/ckanext-scheming_dcat/v2.0.0/requirements.txt # Used to configure the container environment by setting environment variables, creating users, running initialization scripts, .etc COPY docker-entrypoint.d/* /docker-entrypoint.d/ # Update who.ini with PROXY_CKAN_LOCATION -COPY setup/who.ini ${APP_DIR}/ +COPY setup/who.ini ./ # Apply any patches needed to CKAN core -COPY patches ${APP_DIR}/patches +COPY patches patches RUN for d in $APP_DIR/patches/*; do \ if [ -d $d ]; then \ @@ -67,4 +70,4 @@ RUN for d in $APP_DIR/patches/*; do \ fi ; \ done -CMD $APP_DIR/start_ckan.sh +CMD ["/bin/sh", "-c", "$APP_DIR/start_ckan.sh"] \ No newline at end of file diff --git a/ckan/Dockerfile.dev b/ckan/Dockerfile.dev index fb723658..490ad8e4 100644 --- a/ckan/Dockerfile.dev +++ b/ckan/Dockerfile.dev @@ -1,9 +1,13 @@ FROM ghcr.io/mjanez/ckan-base-spatial:ckan-2.9.9-dev +LABEL maintainer="mnl.janez@gmail.com" # Set up environment variables -ENV APP_DIR=/srv/app \ - TZ=UTC \ - SRC_EXTENSIONS_DIR=/srv/app/src_extensions +ENV APP_DIR=/srv/app +ENV TZ=UTC +ENV SRC_EXTENSIONS_DIR=/srv/app/src_extensions + +# Set working directory +WORKDIR ${APP_DIR} RUN echo ${TZ} > /etc/timezone && \ set -ex && apk --no-cache add sudo && \ @@ -47,23 +51,33 @@ RUN echo ${TZ} > /etc/timezone && \ # to get them mounted in this image at runtime # Used to configure the container environment by setting environment variables, creating users, running initialization scripts, .etc -COPY docker-entrypoint.d/* /docker-entrypoint.d/ +COPY docker-entrypoint.d/* docker-entrypoint.d/ # Update who.ini with PROXY_CKAN_LOCATION -COPY setup/who.ini ${APP_DIR}/ +COPY setup/who.ini ./ # Override start_ckan.sh with DEV sh -COPY setup/start_ckan_development.sh.override ${APP_DIR}/start_ckan_development.sh -RUN chmod +x ${APP_DIR}/start_ckan_development.sh +COPY setup/start_ckan_development.sh.override start_ckan_development.sh +RUN chmod +x start_ckan_development.sh # Apply any patches needed to CKAN core or any of the built extensions (not the # runtime mounted ones) -COPY patches ${APP_DIR}/patches +COPY patches patches + +# Apply any patches needed to CKAN core or any of the built extensions (not the +# runtime mounted ones!) +COPY patches patches RUN for d in $APP_DIR/patches/*; do \ if [ -d $d ]; then \ - for f in `ls $d/*.patch | sort -g`; do \ - cd $SRC_DIR/`basename "$d"` && echo "$0: Applying patch $f to $SRC_DIR/`basename $d`"; patch -p1 < "$f" ; \ - done ; \ + for f in `ls $d/*.patch | sort -g`; do \ + if [ -d $SRC_EXTENSIONS_DIR/`basename "$d"` ]; then \ + cd $SRC_EXTENSIONS_DIR/`basename "$d"` && \ + echo "$0: Applying patch $f to $SRC_EXTENSIONS_DIR/`basename $d`" && \ + patch -p1 < "$f" ; \ + else \ + echo "$0: Skipping patch $f because directory $SRC_EXTENSIONS_DIR/`basename $d` does not exist. Built the extension: `basename $d`" ; \ + fi \ + done ; \ fi ; \ - done \ No newline at end of file +done \ No newline at end of file diff --git a/ckan/Dockerfile.ghcr b/ckan/Dockerfile.ghcr index f0cad95c..899a2f11 100644 --- a/ckan/Dockerfile.ghcr +++ b/ckan/Dockerfile.ghcr @@ -1,23 +1,27 @@ FROM ghcr.io/mjanez/ckan-spatial:ckan-2.9.9 +LABEL maintainer="mnl.janez@gmail.com" # Set up environment variables ENV APP_DIR=/srv/app ENV TZ=UTC -RUN echo ${TZ} > /etc/timezone + +# Set working directory +WORKDIR ${APP_DIR} # Make sure both files are not exactly the same -RUN if ! [ /usr/share/zoneinfo/${TZ} -ef /etc/localtime ]; then \ - cp /usr/share/zoneinfo/${TZ} /etc/localtime ;\ +RUN echo ${TZ} > /etc/timezone && \ + if ! [ /usr/share/zoneinfo/${TZ} -ef /etc/localtime ]; then \ + cp /usr/share/zoneinfo/${TZ} /etc/localtime ; \ fi ; # Used to configure the container environment by setting environment variables, creating users, running initialization scripts, .etc -COPY docker-entrypoint.d/* /docker-entrypoint.d/ +COPY docker-entrypoint.d/* docker-entrypoint.d/ # Update who.ini with PROXY_CKAN_LOCATION -COPY setup/who.ini ${APP_DIR}/ +COPY setup/who.ini ./ # Apply any patches needed to CKAN core -COPY patches ${APP_DIR}/patches +COPY patches patches # Updated version of the Dockerfile RUN command that skips applying a patch if a reversed or previously applied patch is detected RUN for d in $APP_DIR/patches/*; do \ @@ -34,4 +38,4 @@ RUN for d in $APP_DIR/patches/*; do \ fi ; \ done -CMD $APP_DIR/start_ckan.sh +CMD ["/bin/sh", "-c", "$APP_DIR/start_ckan.sh"] \ No newline at end of file