diff --git a/.env b/.env index dcb1e46..5437e53 100644 --- a/.env +++ b/.env @@ -70,13 +70,6 @@ REDIS_VERSION=6 CKAN_REDIS_URL=redis://redis:6379/1 TEST_CKAN_REDIS_URL=redis://redis:6379/1 -# Datapusher - Deprecated by ckanext-xloader -DATAPUSHER_VERSION=0.0.19 -CKAN_DATAPUSHER_URL=http://datapusher:8800 -CKAN__DATAPUSHER__CALLBACK_URL_BASE=http://ckan:5000 -DATAPUSHER_REWRITE_RESOURCES=True -DATAPUSHER_REWRITE_URL=http://ckan:5000 - # NGINX NGINX_PORT=80 NGINX_SSLPORT=443 diff --git a/README.md b/README.md index d0bde5f..02ce475 100644 --- a/README.md +++ b/README.md @@ -381,4 +381,4 @@ Available components: [^3]: Development environment. [^4]: Production environment. [^5]: [ckan_geodcatap](https://github.com/mjanez/ckanext-scheming/blob/036b8c6503059e0d42b0eba180d5bd39205c64a3/ckanext/scheming/ckan_geodcatap.yaml), more info: https://github.com/mjanez/ckanext-scheming/pull/1 -[^6]: A fork of [COATNor/coat2pycsw](https://github.com/COATnor/coat2pycsw) that has been extended to meet the needs of harvesting GeoDCAT-AP metadata according to INSPIRE ISO19139. \ No newline at end of file +[^6]: A fork of [COATNor/coat2pycsw](https://github.com/COATnor/coat2pycsw) that has been extended to meet the needs of harvesting GeoDCAT-AP metadata according to INSPIRE ISO19139. diff --git a/ckan/Dockerfile b/ckan/Dockerfile index 49a621b..1b3552e 100644 --- a/ckan/Dockerfile +++ b/ckan/Dockerfile @@ -1,117 +1,13 @@ -FROM alpine:3.13 +FROM ghcr.io/mjanez/ckan-base-spatial:master -# Internals, you probably don't need to change these +# Set up environment variables ENV APP_DIR=/srv/app -ENV SRC_DIR=/srv/app/src -ENV CKAN_INI=${APP_DIR}/ckan.ini -ENV PIP_SRC=${SRC_DIR} -ENV CKAN_STORAGE_PATH=/var/lib/ckan -ENV GIT_URL=https://github.com/ckan/ckan.git ENV TZ=UTC RUN echo ${TZ} > /etc/timezone -# CKAN version to build -ENV GIT_BRANCH=ckan-2.9.8 -# Customize these on the .env file if needed -ENV CKAN_SITE_URL=http://localhost:5000 -ENV CKAN__PLUGINS image_view text_view recline_view datastore datapusher envvars - -# UWSGI options -ENV UWSGI_HARAKIRI=50 - -WORKDIR ${APP_DIR} - -# Install necessary packages to run CKAN -RUN apk add --no-cache tzdata \ - git \ - gettext \ - postgresql-client \ - python3 \ - libxml2 \ - libxslt \ - musl-dev \ - uwsgi \ - uwsgi-http \ - uwsgi-corerouter \ - uwsgi-python \ - py3-gevent \ - uwsgi-gevent \ - libmagic \ - curl \ - patch \ - sudo && \ - # Packages to build CKAN requirements and plugins - apk add --no-cache --virtual .build-deps \ - postgresql-dev \ - gcc \ - make \ - g++ \ - autoconf \ - automake \ - libtool \ - python3-dev \ - libxml2-dev \ - libxslt-dev \ - linux-headers \ - openssl-dev \ - libffi-dev \ - cargo \ - # Set up PROJ - geos-dev \ - proj \ - proj-util \ - proj-dev && \ - # Create SRC_DIR - mkdir -p ${SRC_DIR} && \ - # Install pip, supervisord and uwsgi - curl -o ${SRC_DIR}/get-pip.py https://bootstrap.pypa.io/get-pip.py && \ - python3 ${SRC_DIR}/get-pip.py && \ - pip3 install supervisor && \ - mkdir /etc/supervisord.d && \ - #pip wheel --wheel-dir=/wheels uwsgi gevent && \ - rm -rf ${SRC_DIR}/get-pip.py - -COPY setup/supervisord.conf /etc - -# Install CKAN -RUN pip3 install -e git+${GIT_URL}@${GIT_BRANCH}#egg=ckan && \ - cd ${SRC_DIR}/ckan && \ - cp who.ini ${APP_DIR} && \ - pip3 install -r requirement-setuptools.txt && \ - pip3 install --no-binary markdown -r requirements.txt && \ - # Install CKAN envvars to support loading config from environment variables - pip3 install -e git+https://github.com/okfn/ckanext-envvars.git#egg=ckanext-envvars && \ - # Create and update CKAN config - ckan generate config ${CKAN_INI} && \ - ckan config-tool ${CKAN_INI} "beaker.session.secret = " && \ - ckan config-tool ${CKAN_INI} "ckan.plugins = ${CKAN__PLUGINS}" - -# Create a local user and group to run the app -RUN addgroup -g 92 -S ckan && \ - adduser -u 92 -h /srv/app -s /bin/bash -D -G ckan ckan - -# Create local storage folder -RUN mkdir -p ${CKAN_STORAGE_PATH} && \ - chown -R ckan:ckan ${CKAN_STORAGE_PATH} - -COPY setup/prerun.py ${APP_DIR} -COPY setup/start_ckan.sh ${APP_DIR} -ADD https://raw.githubusercontent.com/ckan/ckan/${GIT_BRANCH}/wsgi.py ${APP_DIR} - -# Create entrypoint directory for children image scripts -ONBUILD RUN mkdir /docker-entrypoint.d - -RUN chown ckan -R /srv/app - -RUN addgroup sudo && \ - adduser ckan sudo - -EXPOSE 5000 - -HEALTHCHECK --interval=60s --timeout=5s --retries=5 CMD curl --fail http://localhost:5000/api/3/action/status_show || exit 1 # 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 ;\ + cp /usr/share/zoneinfo/${TZ} /etc/localtime ;\ fi ; # Extensions @@ -120,9 +16,9 @@ RUN pip3 install -e 'git+https://github.com/ckan/ckanext-xloader.git@0.12.2#egg= pip3 install -r ${APP_DIR}/src/ckanext-xloader/requirements.txt && \ pip3 install -U requests[security] -### Harvester - v1.5.0 ### +### Harvester - v1.5.1 ### RUN echo "ckan/ckanext-harvest" && \ - pip3 install -e 'git+https://github.com/ckan/ckanext-harvest.git@v1.5.0#egg=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 ### Geoview - v0.0.20 ### diff --git a/ckan/Dockerfile.dev b/ckan/Dockerfile.dev index 1e7b26e..6f2d24b 100644 --- a/ckan/Dockerfile.dev +++ b/ckan/Dockerfile.dev @@ -1,18 +1,13 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ Dockerfile +FROM ghcr.io/mjanez/ckan-base-spatial:master # Set up environment variables ENV APP_DIR=/srv/app ENV TZ=UTC RUN echo ${TZ} > /etc/timezone -# Set up PROJ -# PROJ4 for ckanext-spatial: https://github.com/pyproj4/pyproj/issues/582 // https://github.com/nickumia-reisys/ckanext-geodatagov/commit/ed61ffdd118e21e7a1db482c75738c3f261aa180 -RUN apk add geos-dev proj proj-util proj-dev - # 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 ;\ + cp /usr/share/zoneinfo/${TZ} /etc/localtime ;\ fi ; # Install any extensions needed by your CKAN instance @@ -25,54 +20,10 @@ RUN if ! [ /usr/share/zoneinfo/${TZ} -ef /etc/localtime ]; then \ # # For instance: # -### XLoader ### -#RUN pip3 install -e 'git+https://github.com/ckan/ckanext-xloader.git@master#egg=ckanext-xloader' && \ -# pip3 install -r ${APP_DIR}/src/ckanext-xloader/requirements.txt && \ -# pip3 install -U requests[security] - - ###TODO: XLoader ### -RUN pip3 install -e 'git+https://github.com/ckan/ckanext-xloader.git@master#egg=ckanext-xloader' && \ - pip3 install -r ${APP_DIR}/src/ckanext-xloader/requirements.txt && \ - pip3 install -U requests[security] - -### Harvester ### -RUN echo "ckan/ckanext-harvester" && \ - pip3 install -e 'git+https://github.com/ckan/ckanext-harvest.git@master#egg=ckanext-harvest' && \ - pip3 install -r ${APP_DIR}/src/ckanext-harvest/pip-requirements.txt -# will also require gather_consumer and fetch_consumer processes running (please see https://github.com/ckan/ckanext-harvest) - -### Resource dictionary-Fix version ### -RUN echo "mjanez/ckanext-resourcedictionary" && \ - pip3 install -e git+https://github.com/mjanez/ckanext-resourcedictionary.git#egg=ckanext-resourcedictionary && \ - pip3 install -r ${APP_DIR}/src/ckanext-resourcedictionary/requirements.txt - -### Geoview ### -RUN echo "ckan/ckanext-geoview" && \ - pip3 install -e git+https://github.com/ckan/ckanext-geoview.git#egg=ckanext-geoview - -### Spatial ### Check solr geoindexing: https://docs.ckan.org/projects/ckanext-spatial/en/latest/spatial-search.html // https://github.com/ckan/ckanext-spatial/issues/195 -#TODO: 2.10 support reqs: https://github.com/ckan/ckanext-spatial/pull/308 -RUN echo "ckan/ckanext-spatial" && \ - pip3 install -e git+https://github.com/ckan/ckanext-spatial.git#egg=ckanext-spatial && \ - pip3 install -r https://raw.githubusercontent.com/ckan/ckanext-spatial/bae9290395b252ee8e40056256fa694569d1d78b/requirements.txt - -### Scheming-GeoDCAT-AP extended version ### -RUN echo "mjanez/ckanext-scheming (GeoDCAT-AP extended version)" && \ - pip3 install -e git+https://github.com/mjanez/ckanext-scheming.git#egg=ckanext-scheming - -### Pages ### -RUN echo "ckan/ckanext-pages" && \ - pip3 install -e git+https://github.com/ckan/ckanext-pages.git#egg=ckanext-pages - -### PDFView ### -RUN echo "ckan/ckanext-pdfview" && \ - pip3 install -e git+https://github.com/ckan/ckanext-pdfview.git#egg=ckanext-pdfview - -### DCAT-GeoDCAT-AP extended version ### -RUN echo "mjanez/ckanext-dcat (GeoDCAT-AP extended version)" && \ - pip3 install -e git+https://github.com/mjanez/ckanext-dcat.git#egg=ckanext-dcat && \ - pip3 install -r https://raw.githubusercontent.com/mjanez/ckanext-dcat/master/requirements.txt +# RUN pip3 install -e 'git+https://github.com/ckan/ckanext-xloader.git@master#egg=ckanext-xloader' && \ +# pip3 install -r ${APP_DIR}/src/ckanext-xloader/requirements.txt && \ +# pip3 install -U requests[security] ###TODO: ckanext-visualize #https://github.com/keitaroinc/ckanext-visualize diff --git a/ckan/docker-entrypoint.d/setup_xloader.sh b/ckan/docker-entrypoint.d/setup_xloader.sh index 9773aac..556de7a 100644 --- a/ckan/docker-entrypoint.d/setup_xloader.sh +++ b/ckan/docker-entrypoint.d/setup_xloader.sh @@ -11,4 +11,5 @@ echo "Set up ckanext.xloader.api_token in the CKAN config file" ckan config-tool $CKAN_INI "ckanext.xloader.api_token = $(ckan -c $CKAN_INI user token add ckan_admin xloader | tail -n 1 | tr -d '\t')" # Setup worker +echo "Set up CKAN jobs worker" ckan config-tool $CKAN_INI jobs worker default \ No newline at end of file diff --git a/samples/.env.example b/samples/.env.example index de58312..5437e53 100644 --- a/samples/.env.example +++ b/samples/.env.example @@ -58,7 +58,7 @@ CKAN__RESOURCE_PROXY__MAX_FILE_SIZE=50048576 CKAN__RESOURCE_PROXY__CHUNK_SIZE=4096 ## Default timeout for fetching proxied items CKAN__RESOURCE_PROXY__TIMEOUT=10 -CKAN__VIEWS__DEFAULT_VIEWS="image_view text_view recline_view recline_grid_view recline_graph_view wmts_view webpage_view geojson_view geo_view shp_view pdf_view" +CKAN__VIEWS__DEFAULT_VIEWS="image_view text_view recline_view wmts_view geojson_view geo_view shp_view pdf_view" # Solr SOLR_IMAGE_VERSION=2.9-solr8-spatial @@ -70,13 +70,6 @@ REDIS_VERSION=6 CKAN_REDIS_URL=redis://redis:6379/1 TEST_CKAN_REDIS_URL=redis://redis:6379/1 -# Datapusher - Deprecated by ckanext-xloader -DATAPUSHER_VERSION=0.0.19 -CKAN_DATAPUSHER_URL=http://datapusher:8800 -CKAN__DATAPUSHER__CALLBACK_URL_BASE=http://ckan:5000 -DATAPUSHER_REWRITE_RESOURCES=True -DATAPUSHER_REWRITE_URL=http://ckan:5000 - # NGINX NGINX_PORT=80 NGINX_SSLPORT=443