IMAGE openmapkit
LAYER shared/alpine3.9
LAYER shared/alpine3.9-java8
LAYER shared/alpine3.9-python2.7
LAYER shared/alpine3.9-nodejs10
LAYER openmapkit/openmapkit

FIXLAYER /usr/bin/fix-apk

RUN EOF
    # Install build dependencies
    apk --no-cache add --virtual .deps build-base git py2-pip yarn

    # Clone OpenMapKit
    git clone --depth 1 https://github.com/posm/OpenMapKitServer /srv/openmapkit
    cd /srv/openmapkit
    git submodule update --init

    # Install OpenMapKit dependencies
    pip install -r requirements.txt
    yarn add libxmljs
    yarn
    cd frontend
    yarn
    yarn build

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

    # Cleanup
    apk --no-cache del .deps
    find /srv/openmapkit -name '.git*' -exec rm -rf {} +
    rm -rf /usr/local/share/.cache
    rm -rf /root/.cache /root/.config /root/.node-gyp /root/.npm
EOF

# s6 required for single service due to inability of nodejs to process signals when running as PID 1
COPY lxc

MOUNT FILE /srv/openmapkit/conf/settings.js srv/openmapkit/settings.js
MOUNT DIR /srv/openmapkit/data srv/openmapkit/data

CMD s6-svscan /etc/services.d