IMAGE opendatakit
LAYER shared/alpine
LAYER shared/java
LAYER shared/tomcat
LAYER opendatakit/opendatakit

RUN EOF
    # Install build dependencies
    apk --no-cache add --virtual .deps git git-lfs openjdk8

    # Clone ODK aggregate
    git clone --depth 1 https://github.com/opendatakit/aggregate.git /srv/opendatakit

    # Compile Java web archive
    cd /srv/opendatakit
    cp gradle.properties.example gradle.properties
    ./gradlew war

    # Deploy web archive
    mkdir /srv/tomcat/webapps/ROOT
    unzip build/libs/aggregate-*.war -d /srv/tomcat/webapps/ROOT

    # Create OS user
    addgroup -S -g 8015 odk
    adduser -S -u 8015 -h /srv/tomcat -s /bin/false -g odk -G odk odk
    chown -R odk:odk /srv/tomcat/conf /srv/tomcat/logs /srv/tomcat/temp /srv/tomcat/webapps /srv/tomcat/work

    # Cleanup
    apk --no-cache del .deps
    rm -rf /root/.gradle /root/.java /srv/opendatakit
EOF

MOUNT /srv/opendatakit/conf/server.xml srv/tomcat/conf/server.xml
MOUNT /srv/opendatakit/conf/jdbc.properties srv/tomcat/webapps/ROOT/WEB-INF/classes/jdbc.properties
MOUNT /srv/opendatakit/conf/security.properties srv/tomcat/webapps/ROOT/WEB-INF/classes/security.properties

USER 8015 8015
WORKDIR /srv/tomcat
CMD catalina.sh run
