1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/docker/debian-stretch/Dockerfile.build
suika 9a23523ae4 Use ENV to set important paths
To make it easier to change the parameters ENV vars can be used to set DB, IMAGE, TMP and CONF path.

Closes #124
2020-01-27 21:58:50 +01:00

37 lines
1.3 KiB
Docker

#-----------------BUILDER-----------------
#-----------------------------------------
FROM node:12-stretch AS builder
COPY pigallery2-release /app
WORKDIR /app
RUN npm install --unsafe-perm
RUN mkdir -p /app/data/config && \
mkdir -p /app/data/db && \
mkdir -p /app/data/images && \
mkdir -p /app/data/tmp
#-----------------MAIN--------------------
#-----------------------------------------
FROM node:12-stretch-slim as main
WORKDIR /app
ENV NODE_ENV=production \
CONFIG_FILE=/app/data/config/config.json \
DB_PATH=/app/data/db \
MEDIA_PATH=/app/data/images \
TEMP_PATH=/app/data/tmp
# command line arg orverride the config.json with these settings
ENTRYPOINT ["node", "./src/backend/index", \
# after a extensive job (like video converting), pigallery calls gc, to clean up everthing as fast as possible
"--expose-gc", \
"--config-path=$CONFIG_FILE", \
"--Server-Database-dbFolder=$DB_PATH", \
"--Server-Media-folder=$MEDIA_PATH", \
"--Server-Media-tempFolder=$TEMP_PATH"]
EXPOSE 80
RUN apt-get update && apt-get install -y ffmpeg
COPY --from=builder /app /app
VOLUME ["/app/data/config", "/app/data/db", "/app/data/images", "/app/data/tmp"]
HEALTHCHECK --interval=40s --timeout=30s --retries=3 --start-period=60s \
CMD wget --quiet --tries=1 --no-check-certificate --spider \
http://localhost:80/heartbeat || exit 1