diff --git a/rootfs/Dockerfile b/rootfs/Dockerfile index 52200f5..9cf324b 100644 --- a/rootfs/Dockerfile +++ b/rootfs/Dockerfile @@ -3,6 +3,7 @@ FROM keitaro/base:0.1 MAINTAINER Keitaro Inc ENV APP_DIR=/srv/app +ENV SRC_DIR=/srv/app/src ENV GIT_URL=https://github.com/keitaroinc/ckan.git ENV GIT_BRANCH=ckan-2.5-map-fix3 ENV CKAN_SITE_URL=http://localhost:5000 @@ -12,21 +13,32 @@ WORKDIR ${APP_DIR} # Install necessary packages to run CKAN RUN apk add --no-cache git \ - gettext \ - postgresql-client \ - python \ - py-pip \ - py-gunicorn && \ + gettext \ + postgresql-client \ + python \ + py-pip \ + py-gunicorn && \ # Temporary packages to build CKAN requirements apk add --no-cache --virtual .build-deps \ - postgresql-dev \ - gcc \ - musl-dev \ - python-dev && \ + postgresql-dev \ + gcc \ + make \ + g++ \ + autoconf \ + automake \ + libtool \ + musl-dev \ + python-dev && \ + # Build and install libgeos to support geospatial + git clone -b 3.6.0 --depth=1 --single-branch https://git.osgeo.org/gogs/geos/geos.git ${SRC_DIR}/geos && \ + cd ${SRC_DIR}/geos && \ + ./autogen.sh && \ + ./configure && \ + make -j2 && \ + make install && \ # Fetch CKAN and install - mkdir ${APP_DIR}/src && cd ${APP_DIR}/src && \ - git clone -b ${GIT_BRANCH} --depth=1 --single-branch ${GIT_URL} ckan && \ - cd ckan && \ + git clone -b ${GIT_BRANCH} --depth=1 --single-branch ${GIT_URL} ${SRC_DIR}/ckan && \ + cd ${SRC_DIR}/ckan && \ cp who.ini ${APP_DIR} && \ python setup.py install && \ pip install --no-cache-dir testrepository && \ @@ -35,7 +47,7 @@ RUN apk add --no-cache git \ pip install --no-cache-dir html5lib==0.9999999 && \ # Remove temporary packages and files apk del .build-deps && \ - rm -rf ${APP_DIR}/src + rm -rf ${SRC_DIR} # Default Extensions RUN pip install --no-cache-dir git+https://github.com/okfn/ckanext-envvars.git#egg=ckanext-envvars && \ @@ -43,6 +55,9 @@ RUN pip install --no-cache-dir git+https://github.com/okfn/ckanext-envvars.git#e paster --plugin=ckan make-config ckan ${APP_DIR}/production.ini && \ paster --plugin=ckan config-tool ${APP_DIR}/production.ini "ckan.plugins = ${CKAN__PLUGINS}" +# CKAN plugins to enable +ENV CKAN__PLUGINS image_view text_view recline_view datastore datapusher envvars + COPY setup ${APP_DIR} EXPOSE 5000