# Gunakan base image yang lebih ringan FROM node:18-alpine AS builder # Set working directory WORKDIR /app # Copy package.json dan package-lock.json COPY package*.json ./ # Install dependencies (termasuk dev) di stage build RUN npm ci # Copy semua source code COPY . . # Build React app (kalau ini frontend) RUN npm run build # --------------------------- # Stage 2: image produksi # --------------------------- FROM node:18-alpine WORKDIR /app # Hanya copy file hasil build dari stage sebelumnya COPY --from=builder /app/build ./build COPY package*.json ./ # Install hanya dependency production RUN npm ci --only=production && npm cache clean --force # Ubah kepemilikan agar aman di Kubernetes RUN chown -R node:node /app USER node # Expose port EXPOSE 3000 # Jalankan app (gunakan serve untuk app React, atau npm start kalau Node server) CMD ["npx", "serve", "-s", "build"]