Skip to main content

Environment Next.js undefined ketika build di Docker

· One min read
Wisnu Harjanta

Case ini terjadi ketika ada env NEXT_PUBLIC dinext.js yang diakses pada komponent. Ketika proses build selesai dan app dijalankan, env bernilai undefined. Sehingga app tidak berjalan dengan normal.

Error ini disebabkan karena Next.js akan berjalan pada runtime dan buildtime. padahal env hanya berjalan ketika proses runtime saja. alhasil env tidak terdefinisi. untuk mengatasi problem ini bisa menambahkan env pada Dockerfile atau docker compose dan cara lain yaitu dengan publicRuntimeConfig

Cara menambakannya seperti ini.

Buka file nex.config.ja dan tambahkan kode berikut

module.export = {
// other code
publicRuntimeConfig: {
NEXT_PUBLIC_EXAMPLE_ENV: NEXT_PUBLIC_EXAMPLE_ENV,
NEXT_PUBLIC_OTHER_ENV: NEXT_PUBLIC_OTHER_ENV,
},
// other code
};

kemudian coba build ulang image tadi dengan

docker build <name-image> .

Dan jalankan image kemudian akses kembali app yang sudah dibuild tadi