################### ### Extensions #### ################### FROM ghcr.io/keitaroinc/ckan:2.9.11 as extbuild # Locations and tags, please use specific tags or revisions ENV HARVEST_GIT_URL=https://github.com/ckan/ckanext-harvest ENV HARVEST_GIT_BRANCH=v1.3.4 # Switch to the root user USER root # Install necessary packages to build extensions RUN apk add --no-cache \ python3-dev \ gcc \ g++ \ libffi-dev \ openssl-dev \ rust \ cargo # Fetch and build the custom CKAN extensions RUN pip wheel --wheel-dir=/wheels git+${HARVEST_GIT_URL}@${HARVEST_GIT_BRANCH}#egg=ckanext-harvest RUN pip wheel --wheel-dir=/wheels -r https://raw.githubusercontent.com/ckan/ckanext-harvest/${HARVEST_GIT_BRANCH}/pip-requirements.txt RUN curl -o /wheels/harvest.txt https://raw.githubusercontent.com/ckan/ckanext-harvest/${HARVEST_GIT_BRANCH}/pip-requirements.txt USER ckan ############ ### MAIN ### ############ FROM ghcr.io/keitaroinc/ckan:2.9.11 LABEL maintainer="Keitaro Inc " ENV CKAN__PLUGINS envvars image_view text_view recline_view datastore datapusher harvest ckan_harvester # Switch to the root user USER root COPY --from=extbuild /wheels /srv/app/ext_wheels # Install and enable the custom extensions RUN pip install --no-index --find-links=/srv/app/ext_wheels ckanext-harvest && \ pip install --no-index --find-links=/srv/app/ext_wheels -r /srv/app/ext_wheels/harvest.txt && \ # Configure plugins ckan config-tool "${APP_DIR}/production.ini" "ckan.plugins = ${CKAN__PLUGINS}" && \ chown -R ckan:ckan /srv/app # Remove wheels RUN rm -rf /srv/app/ext_wheels # Add harvest afterinit script COPY ./afterinit.d/00_harvest.sh ${APP_DIR}/docker-afterinit.d/00_harvest.sh # Switch to the ckan user USER ckan