1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/docker/alpine/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

40 lines
1.6 KiB
Docker

#-----------------BUILDER-----------------
#-----------------------------------------
FROM node:12-alpine3.11 AS builder
RUN apk add --update-cache --repository https://alpine.global.ssl.fastly.net/alpine/v3.11/community/ \
python build-base sqlite-dev sqlite-libs vips-dev fftw-dev gcc g++ make libc6-compat
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-alpine3.11 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 apk add --update-cache --repository https://alpine.global.ssl.fastly.net/alpine/v3.11/community/ \
vips 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