Add alpine image

Resolves #5
This commit is contained in:
promasu 2020-10-17 22:47:03 +02:00 committed by Adrian Nöthlich
parent 9877ab9f29
commit 2de9abb20e
No known key found for this signature in database
GPG key ID: CBA6B4E35D326EFE

50
Dockerfile-alpine Normal file
View file

@ -0,0 +1,50 @@
# Multistage build to reduce image size and increase security
FROM node:12-alpine AS build
# Install requirements to clone repository and install deps
RUN apk add --no-cache git
RUN npm install -g bower
# Create folder for cryptpad
RUN mkdir /cryptpad
WORKDIR /cryptpad
# Get cryptpad from repository submodule
COPY cryptpad /cryptpad
RUN sed -i "s@//httpAddress: '::'@httpAddress: '0.0.0.0'@" /cryptpad/config/config.example.js
# Install dependencies
RUN npm install --production \
&& npm install -g bower \
&& bower install --allow-root
# Create actual cryptpad image
FROM node:12-alpine
# Create user and group for cryptpad so it does not run as root
RUN addgroup -g 4001 -S cryptpad \
&& adduser -u 4001 -S -D -g 4001 -H -h /cryptpad cryptpad
# Copy cryptpad with installed modules
COPY --from=build --chown=cryptpad /cryptpad /cryptpad
USER cryptpad
# Set workdir to cryptpad
WORKDIR /cryptpad
# Create directories
RUN mkdir blob block customize data datastore
# Volumes for data persistence
VOLUME /cryptpad/blob
VOLUME /cryptpad/block
VOLUME /cryptpad/customize
VOLUME /cryptpad/data
VOLUME /cryptpad/datastore
# Ports
EXPOSE 3000 3001
# Run cryptpad on startup
CMD ["server.js"]