ARG NODE_IMAGE=docker.m.daocloud.io/library/node:24-alpine FROM ${NODE_IMAGE} ENV NODE_ENV=production \ PORT=3000 \ APP_DB_PATH=/app/data/app.sqlite \ UPLOAD_DIR=/app/data/sources \ 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 \ && chown -R node:node /app USER node VOLUME ["/app/data"] EXPOSE 3000 CMD ["node", "src/server.js"]