# ==============================================================================
# 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"]
