diff --git a/Dockerfile b/Dockerfile index f03a942c..8daffc34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,42 +1,73 @@ -<<<<<<< HEAD # Menggunakan image Node.js yang lebih ringan -FROM node:22.6.0-alpine -======= -# Gunakan base image Node.js Alpine yang ringan FROM node:23.5.0-alpine ->>>>>>> f7b1b79c08fb402d324a2534d64950ed5ee89eb2 -# 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