1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/docker/alpine/Dockerfile
Suika 3956b2d944
Alpine docker container
Build everything in the staged container and only copy the complete product to the final container.
Also reduced the size of the container threefold.

Created `data/{config,db,images,TEMP}` to make volumes possible for ease of use with docker and persistence of configurations.
`config.json` symlinks to `data/config/config.json` since I don'T know how to call for the config in different path
2019-10-03 02:09:56 +02:00

23 lines
857 B
Docker

FROM node:alpine
RUN apk add python build-base
COPY . /build
WORKDIR /build
RUN set -x && npm install --unsafe-perm && npm run build-release && \
cd /build/release && npm install --unsafe-perm
RUN mkdir -p /build/release/data/config && \
mkdir -p /build/release/data/db && \
mkdir -p /build/release/data/image && \
mkdir -p /build/release/data/TEMP && \
cd /build/release && node backend/server.js && \
sed -i 's/demo/data/g' config.json && sed -i 's@sqlite\.db@data/db/sqlite\.db@' config.json && \
mv /build/release/config.json /build/release/data/config/config.json
FROM node:alpine
WORKDIR /app
ENTRYPOINT ["npm", "start"]
EXPOSE 80
ENV NODE_ENV=production
COPY --from=0 /build/release /app
RUN ln -s /app/data/config/config.json config.json
VOLUME ["/app/data/config", "/app/data/db", "/app/data/images", "/app/data/TEMP"]