# Pre-requisite: run ./scripts/docker-prep.sh to pack @bytelyst/* tarballs # ── Stage 1: Build ──────────────────────────────────── FROM node:22-alpine AS builder WORKDIR /app/backend RUN npm config set strict-ssl false COPY backend/package.json ./package.json COPY backend/.docker-deps/ ./.docker-deps/ RUN npm install COPY backend/tsconfig.json ./tsconfig.json COPY backend/src/ ./src/ COPY shared/ ./shared/ RUN npm run build # ── Stage 2: Runtime ────────────────────────────────── FROM node:22-alpine WORKDIR /app/backend ENV NODE_ENV=production RUN npm config set strict-ssl false COPY backend/package.json ./package.json COPY backend/.docker-deps/ ./.docker-deps/ RUN npm install --omit=dev --ignore-scripts COPY --from=builder /app/backend/dist ./dist COPY --from=builder /app/backend/shared ./shared EXPOSE 4016 CMD ["node", "dist/server.js"]