FROM node:22-alpine AS build WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npm run ci FROM node:22-alpine AS runtime WORKDIR /app ENV NODE_ENV=production ENV PORT=80 COPY package.json package-lock.json ./ RUN npm ci --omit=dev && npm cache clean --force COPY --from=build /app/dist ./dist COPY server ./server EXPOSE 80 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget -q --spider http://127.0.0.1/api/health || exit 1 CMD ["node", "server/index.mjs"]