# ============================================================================== # CHAMPIONS OF LUNERARIA - Cloud Production Dockerfile # Multi-stage lightweight Alpine container for VPS, AWS, GCP, Azure, Hetzner # ============================================================================== FROM node:22-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=8080 # Security: Non-root user USER node # Copy application files COPY --chown=node:node package.json ./ COPY --chown=node:node server.js ./ COPY --chown=node:node src/ ./src/ COPY --chown=node:node public/ ./public/ EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/api/metrics || exit 1 CMD ["node", "server.js"]