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