# ---- Build stage ---- FROM node:22-alpine AS builder WORKDIR /app COPY server/package.json server/package-lock.json* ./ RUN npm install && npm audit fix COPY server/src ./src COPY server/tsconfig.json ./ RUN npm run build # ---- Runtime stage ---- FROM node:22-alpine WORKDIR /app COPY --from=builder /app/dist ./dist # schema.sql is read by the migrate script at runtime COPY server/src/db/schema.sql ./dist/db/schema.sql COPY server/package.json server/package-lock.json* ./ RUN npm install --omit=dev EXPOSE 3001 CMD ["sh", "-c", "node dist/db/migrate.js && node dist/index.js"]