# syntax=docker/dockerfile:1 # ---------- Build stage ---------- FROM node:20-bookworm-slim AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm install COPY . . RUN npm run build # ---------- Runtime stage ---------- FROM node:20-bookworm-slim WORKDIR /app ENV NODE_ENV=production \ WRANGLER_SEND_METRICS=false # Copy everything from builder (includes node_modules, dist, migrations, etc.) COPY --from=builder /app /app RUN chmod +x /app/docker-entrypoint.sh EXPOSE 3000 # Persist D1 SQLite data and seed marker between restarts VOLUME ["/data"] ENTRYPOINT ["/app/docker-entrypoint.sh"]