FROM node:20-alpine AS base # Install dependencies stage FROM base AS deps RUN apk add --no-cache libc6-compat python3 make g++ WORKDIR /app COPY package*.json ./ RUN npm ci # Build stage FROM deps AS builder WORKDIR /app COPY . . RUN npm run build # Production stage FROM base AS runner WORKDIR /app ENV NODE_ENV=production RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 astro RUN apk add --no-cache curl COPY --from=builder --chown=astro:nodejs /app/dist ./dist COPY --from=builder --chown=astro:nodejs /app/package*.json ./ USER astro EXPOSE 4321 ENV HOST=0.0.0.0 ENV PORT=4321 HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:4321/ || exit 1 CMD ["node", "dist/server/entry.mjs"]