33 lines
611 B
Docker
33 lines
611 B
Docker
ARG NODE_IMAGE=docker.m.daocloud.io/library/node:24-alpine
|
|
|
|
FROM ${NODE_IMAGE}
|
|
|
|
ENV NODE_ENV=production \
|
|
PORT=3000 \
|
|
HTTPS_PORT=3443 \
|
|
APP_DB_PATH=/app/data/app.sqlite \
|
|
UPLOAD_DIR=/app/data/sources \
|
|
TLS_DIR=/app/data/tls \
|
|
PREVIEW_MAX_BYTES=16777216
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci --omit=dev && npm cache clean --force
|
|
|
|
COPY public ./public
|
|
COPY src ./src
|
|
COPY sql ./sql
|
|
COPY README.md ./
|
|
|
|
RUN mkdir -p /app/data/sources /app/data/tls \
|
|
&& chown -R node:node /app
|
|
|
|
USER node
|
|
|
|
VOLUME ["/app/data"]
|
|
|
|
EXPOSE 3000 3443
|
|
|
|
CMD ["node", "src/server.js"]
|