# syntax=docker/dockerfile:1.6 ARG NODE_VERSION=20 ## Build stage (with dev deps, native to build platform) FROM --platform=$BUILDPLATFORM node:${NODE_VERSION}-bookworm-slim AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build ## Production deps (native to target platform) FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-bookworm-slim AS deps WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev ## Runtime image (target platform) FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-bookworm-slim ENV NODE_ENV=production WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY package*.json ./ COPY --from=build /app/dist ./dist EXPOSE 52345 CMD ["node", "dist/index.js"]