Tutorial sederhana untuk menggunakan Docker dengan aplikasi Next.js menggunakan Docker Desktop.
Sebelum memulai, pastikan Anda telah menginstall:
- Docker Desktop untuk Windows
- Git (untuk version control)
# Build image dengan nama nextjs-app
docker build -t nextjs-app .
# Jalankan container dan expose ke port 3000
docker run -p 3000:3000 nextjs-app
Buka browser dan akses: http://localhost:3000
nextjs-docker/
βββ Dockerfile # File konfigurasi Docker
βββ .dockerignore # File yang diabaikan saat build
βββ README.md # Dokumentasi ini
File konfigurasi untuk membuat Docker image:
- Base Image: Menggunakan
node:20-alpine
- image Linux yang ringan dengan Node.js 20 - Working Directory: Set
/app
sebagai direktori kerja di dalam container - Copy Files: Copy
package.json
dan source code ke container - Install Dependencies: Menggunakan
npm ci
untuk install dependencies - Build: Menjalankan
npm run build
untuk build aplikasi production - Start: Menggunakan
npm start
untuk menjalankan Next.js server - Expose Port: Membuka port 3000 untuk akses dari luar container
Note: Next.js menggunakan port 3000 secara default dan memiliki built-in server untuk production.
File ini mencegah file/folder yang tidak diperlukan masuk ke Docker context:
node_modules
- akan diinstall ulang di container.next
,out
,build
- output build yang akan dibuat ulang.env
files - environment variables- IDE files, logs, temporary files
- Next.js specific files (
.next/
,out/
,.vercel
)
# Lihat semua images
docker images
# Hapus image
docker rmi nextjs-app
# Hapus semua unused images
docker image prune
# Lihat running containers
docker ps
# Lihat semua containers (termasuk yang sudah stop)
docker ps -a
# Stop container yang sedang berjalan
docker stop <container-id>
# Hapus container
docker rm <container-id>
# Jalankan container di background
docker run -d -p 3000:3000 --name nextjs-container nextjs-app
# Lihat logs container
docker logs nextjs-container
# Akses container untuk debugging
docker exec -it nextjs-container sh
# Check status container
docker inspect nextjs-container
# Windows: Cek port yang digunakan
netstat -ano | findstr :3000
# Kill process di port tertentu
taskkill /PID <PID> /F
Jika muncul error terkait Node.js version, pastikan Dockerfile menggunakan node:20-alpine
atau versi yang lebih baru.
# Clear Docker cache
docker builder prune
# Build dengan no-cache
docker build --no-cache -t nextjs-app .
# Check container logs
docker logs nextjs-container
# Check container status
docker inspect nextjs-container
- Menggunakan Alpine Linux base images
- Proper
.dockerignore
file untuk menghindari file yang tidak perlu
- Regular update base images
- Tidak include file sensitive di image
Buka Docker Desktop dan pastikan status running (ikon Docker di system tray berwarna hijau)
# Masuk ke direktori project
cd nextjs-docker
# Build image (proses ini akan download dependencies dan build aplikasi)
docker build -t nextjs-app .
# Jalankan container
docker run -p 3000:3000 nextjs-app
# Atau jalankan di background
docker run -d -p 3000:3000 --name my-nextjs-app nextjs-app
Buka browser dan akses: http://localhost:3000
Aspek | Next.js | React Vite |
---|---|---|
Built-in Server | β
Ya (npm start ) |
β Butuh serve package |
SSR/SSG | β Built-in | β Client-side only |
API Routes | β Built-in | β Butuh backend terpisah |
Build Output | .next/ folder |
dist/ folder |
Production Ready | β Langsung siap |
Happy Dockerizing with Next.js! π³β‘