dsec-notebook/Dockerfile
2026-08-29 20:05:06 +08:00

35 lines
619 B
Docker

# syntax=docker/dockerfile:1
# ---- Build stage ----
FROM node:24-alpine AS build
# Skip Playwright browser download (only needed for tests, not for building).
ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
# ---- Runtime stage ----
FROM node:24-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production \
HOST=0.0.0.0 \
PORT=3000 \
DATABASE_PATH=data/dsec.db
COPY --from=build /app/build ./build
RUN mkdir -p data && chown -R node:node /app
USER node
EXPOSE 3000
VOLUME ["/app/data"]
CMD ["node", "build/index.js"]