Spotter-VM/openmapkit/Dockerfile

40 lines
1.2 KiB
Docker

FROM alpine:3.7
MAINTAINER Disassembler <disassembler@dasm.cz>
RUN \
# Install Python2 runtime
apk --no-cache add python2
RUN \
# Install runtime dependencies
apk --no-cache add nodejs openjdk8-jre-base \
# Install build dependencies
&& apk --no-cache add --virtual .deps git build-base paxctl py2-pip yarn \
# Fix grsec attributes to loosen memory protection restrictions
&& paxctl -cm /usr/bin/node \
# Clone OpenMapKit
&& git clone --depth 1 https://github.com/AmericanRedCross/OpenMapKitServer /srv/openmapkit \
&& cd /srv/openmapkit \
&& git submodule update --init \
# Install OpenMapKit dependencies
&& pip install -r requirements.txt \
&& npm install libxmljs \
&& yarn \
# 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 \
&& rm -rf /srv/openmapkit/.git* /srv/openmapkit/api/odk/pyxform/.git* \
&& rm -rf /usr/local/share/.cache \
&& rm -rf /root \
&& mkdir /root
VOLUME ["/srv/openmapkit/data"]
EXPOSE 8007
USER omk
ENV NODE_ENV production
CMD ["node", "/srv/openmapkit/server.js"]