From e5da6f4eccf7dc0473a881410e52f6b11a606dce Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Mon, 19 Jan 2026 17:56:19 +0700 Subject: [PATCH] fix: fixing dockerfile --- .gitignore | 1 + Dockerfile | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 5340dd9..857a32e 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts +.env.local diff --git a/Dockerfile b/Dockerfile index 2b874db..de82b6d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,16 @@ FROM node:23.5.0-alpine # Mengatur port ENV PORT 3000 +# Build arguments untuk environment variables (build-time) +# Bisa di-override saat docker build dengan --build-arg +ARG NEXT_PUBLIC_API_URL +ARG NEXT_PUBLIC_SITE_URL + +# Set sebagai environment variables untuk build +# Next.js membaca NEXT_PUBLIC_* variables saat BUILD TIME +ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL} +ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL} + # Install pnpm secara global RUN npm install -g pnpm @@ -16,17 +26,19 @@ COPY package.json ./ # Menyalin direktori ckeditor5 jika diperlukan COPY vendor/ckeditor5 ./vendor/ckeditor5 -# Menyalin env -COPY .env .env - # Install dependencies RUN pnpm install # RUN pnpm install --frozen-lockfile -# Menyalin source code aplikasi +# Menyalin source code aplikasi (termasuk .env jika ada) +# PENTING: Next.js akan membaca file .env otomatis jika ada +# Tapi jika ARG di-set, ARG akan override nilai dari .env COPY . . # Build aplikasi +# Next.js membaca NEXT_PUBLIC_* dari: +# 1. Environment variables (ENV) - prioritas tertinggi +# 2. File .env - jika ENV tidak di-set RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm next build # Expose port untuk server