IMAGE ckan
LAYER shared/alpine
LAYER shared/libxml
LAYER shared/python2
LAYER ckan/ckan

SCRIPT
    # Add edge/testing repository
    echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing' >>/etc/apk/repositories

    # Install runtime dependencies
    apk --no-cache add geos@edge libjpeg-turbo libmagic libpq mailcap py2-pip zlib

    # Install build dependencies
    apk --no-cache add --virtual .deps build-base git libjpeg-turbo-dev libxml2-dev libxslt-dev postgresql-dev python2-dev zlib-dev

    # Hackfix for python find_library('c') call
    ln -s /lib/ld-musl-x86_64.so.1 /lib/libc.so.1

    # Install CKAN
    mkdir -p /srv/ckan
    cd /srv/ckan
    pip install -U setuptools
    pip install flask-debugtoolbar
    pip install -e 'git+https://github.com/ckan/ckan.git#egg=ckan'
    pip install -r /srv/ckan/src/ckan/requirements.txt

    # Install CKAN extensions
    pip install -e 'git+https://github.com/ckan/ckanext-basiccharts#egg=ckanext_basiccharts'
    pip install -e 'git+https://github.com/ckan/ckanext-spatial#egg=ckanext_spatial'
    pip install -e 'git+https://github.com/ckan/ckanext-geoview#egg=ckanext_geoview'
    pip install -e 'git+https://github.com/ckan/ckanext-mapviews#egg=ckanext_mapviews'
    pip install -e 'git+https://github.com/XVTSolutions/ckanext-spatialUI#egg=ckanext_spatialui'
    pip install -e 'git+https://github.com/aptivate/ckanext-datasetthumbnail#egg=ckanext_datasetthumbnail'
    pip install -e 'git+https://github.com/datagvat/ckanext-dgvat_xls#egg=ckanext_dgvat_xls'
    pip install -r /srv/ckan/src/ckanext-spatial/pip-requirements.txt
    pip install -r /srv/ckan/src/ckanext-dgvat-xls/requirements.txt

    # Create OS user
    addgroup -S -g 8003 ckan
    adduser -S -u 8003 -h /srv/ckan -s /bin/false -g ckan -G ckan ckan
    chown -R ckan:ckan /srv/ckan

    # Cleanup
    apk --no-cache del .deps
    find /srv/ckan/src -name '.git*' -exec rm -rf {} +
    rm -rf /root/.cache
RUN

COPY lxc

MOUNT /srv/ckan/conf etc/ckan
MOUNT /srv/ckan/data srv/ckan/storage

CMD s6-svscan /etc/services.d
