# Builder stage (use debian-based image for native binding compatibility) FROM node:22-slim AS builder WORKDIR /app # Copy package files and install dependencies COPY package.json package-lock.json ./ RUN npm ci --no-audit --no-fund # Copy source code COPY . . # Build the application # No build args needed - Nuxt runtimeConfig is overridden at runtime via NUXT_* env vars RUN npm run build # Development stage FROM builder AS dev EXPOSE 9999 CMD ["npm", "run", "dev"] # Production stage (can use slim image since we only need node runtime) FROM node:22-slim AS prod WORKDIR /app # Copy built application from builder COPY --from=builder /app/.output /app/.output # Runtime defaults (overridden by docker-compose environment) ENV NODE_ENV=production \ HOST=0.0.0.0 \ PORT=9999 EXPOSE 9999 CMD ["node", ".output/server/index.mjs"]