From 30235c240ab3f316aff335849979eb230d0d9c89 Mon Sep 17 00:00:00 2001 From: Sabda Yagra Date: Mon, 27 Oct 2025 11:31:51 +0700 Subject: [PATCH] fix: dockerfile --- Dockerfile | 78 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 57 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index f0cf7d0c..8daffc34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,37 +1,73 @@ -# Gunakan base image Node.js Alpine yang ringan +# Menggunakan image Node.js yang lebih ringan FROM node:23.5.0-alpine -# Atur environment -ENV PORT=3000 -ENV NODE_ENV=production -ENV NODE_OPTIONS="--max-old-space-size=4096" +# Mengatur port +ENV PORT 3000 -# Install dependencies global -RUN npm install -g pnpm pm2 +# Install pnpm secara global +RUN npm install -g pnpm -# Set working directory +# Membuat direktori aplikasi dan mengatur sebagai working directory WORKDIR /usr/src/app -# Salin file penting untuk caching dependencies -COPY package.json pnpm-lock.yaml* ./ -# Salin vendor jika diperlukan (ckeditor misalnya) +# Menyalin file penting terlebih dahulu untuk caching +COPY package.json ./ + +# Menyalin direktori ckeditor5 jika diperlukan COPY vendor/ckeditor5 ./vendor/ckeditor5 # Install dependencies -RUN pnpm install --frozen-lockfile +RUN pnpm install +# RUN pnpm install --frozen-lockfile -# Salin semua source code +# Menyalin source code aplikasi COPY . . -# Salin ecosystem config -COPY ecosystem.config.js ./ +# Build aplikasi +RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm run build -# Build Next.js -RUN pnpm run build - -# Expose port +# Expose port untuk server EXPOSE 3000 -# Jalankan Next.js dalam mode cluster -CMD ["pm2-runtime", "start", "ecosystem.config.js"] \ No newline at end of file +# Perintah untuk menjalankan aplikasi +CMD ["pnpm", "run", "start"] + + +# # Gunakan base image Node.js Alpine yang ringan +# FROM node:23.5.0-alpine + +# # Atur environment +# ENV PORT=3000 +# ENV NODE_ENV=production +# ENV NODE_OPTIONS="--max-old-space-size=4096" + +# # Install dependencies global +# RUN npm install -g pnpm pm2 + +# # Set working directory +# WORKDIR /usr/src/app + +# # Salin file penting untuk caching dependencies +# COPY package.json pnpm-lock.yaml* ./ + +# # Salin vendor jika diperlukan (ckeditor misalnya) +# COPY vendor/ckeditor5 ./vendor/ckeditor5 + +# # Install dependencies +# RUN pnpm install --frozen-lockfile + +# # Salin semua source code +# COPY . . + +# # Salin ecosystem config +# COPY ecosystem.config.js ./ + +# # Build Next.js +# RUN pnpm run build + +# # Expose port +# EXPOSE 3000 + +# # Jalankan Next.js dalam mode cluster +# CMD ["pm2-runtime", "start", "ecosystem.config.js"] \ No newline at end of file