1- # =========================
1+ # =========================
22# STAGE 1: BASE
33# =========================
44FROM node:22-alpine AS base
55WORKDIR /app
66
7- # Salin hanya file yang diperlukan untuk install dependencies
87COPY package*.json ./
9-
10- # Pastikan npm up-to-date
118RUN npm install -g npm@11
129
1310# =========================
1411# STAGE 2: DEPENDENCIES
1512# =========================
1613FROM base AS deps
17- # Gunakan npm install agar kompatibel untuk dev dan prod
1814RUN npm install
1915
2016# =========================
2117# STAGE 3: BUILD (Production)
2218# =========================
2319FROM deps AS builder
20+
21+ # --- Tambahan ENV untuk Vite ---
22+ ARG VITE_API_URL
23+ ARG DISCORD_WEBHOOK_URL
24+ ARG LOG_LEVEL
25+
26+ ENV VITE_API_URL=$VITE_API_URL
27+ ENV DISCORD_WEBHOOK_URL=$DISCORD_WEBHOOK_URL
28+ ENV LOG_LEVEL=$LOG_LEVEL
29+ # --------------------------------
30+
2431COPY . .
2532RUN npm run build
2633
@@ -29,33 +36,21 @@ RUN npm run build
2936# =========================
3037FROM deps AS development
3138ENV NODE_ENV=development
32- # Disable file watching performance warning
3339ENV WATCHPACK_POLLING=true
3440ENV CHOKIDAR_USEPOLLING=true
3541ENV CHOKIDAR_INTERVAL=500
3642
37- # Copy source agar hot reload tetap berfungsi saat tanpa volume
3843COPY . .
3944
40- # Port default Vite atau Nest dev server
4145EXPOSE 5173
42-
43- # Ganti user agar tidak pakai root (best practice)
44- # USER node
45-
46- # Jalankan dev mode
4746CMD ["npm" , "run" , "dev" ]
4847
4948# =========================
5049# STAGE 5: PRODUCTION
5150# =========================
5251FROM nginx:alpine AS production
5352
54- # Copy hasil build ke nginx
5553COPY --from=builder /app/dist /usr/share/nginx/html
5654
57- # Optional custom config
58- # COPY nginx.conf /etc/nginx/conf.d/default.conf
59-
6055EXPOSE 80
6156CMD ["nginx" , "-g" , "daemon off;" ]
0 commit comments