Files

18 lines
527 B
Docker

# Build stage: compile native deps (better-sqlite3) with toolchain present.
FROM node:22-bookworm-slim AS build
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends python3 make g++ \
&& rm -rf /var/lib/apt/lists/*
COPY app/package.json app/package-lock.json ./
RUN npm ci --omit=dev
COPY app/ ./
# Runtime stage: slim image with prebuilt node_modules copied in.
FROM node:22-bookworm-slim
WORKDIR /app
ENV NODE_ENV=production
COPY --from=build /app ./
EXPOSE 3000
CMD ["node", "src/server.js"]