Prasyarat
Pastikan sebelum memulai:
- VPS Linux (Ubuntu 20.04 / 22.04 / 24.04 direkomendasikan)
- Docker & Docker Compose sudah terinstal
- Source code Next.js siap digunakan
- Aplikasi dapat berjalan normal di lokal
1. Dockerfile Next.js (Production)
Gunakan multi-stage build agar image lebih kecil, aman, dan cepat.
FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/public ./public EXPOSE 3000 CMD ["node", "server.js"]
2. Konfigurasi Docker Compose
version: "3.9"
services:
nextjs:
build: .
container_name: nextjs-app
restart: always
ports:
- "127.0.0.1:3001:3000"
environment:
NODE_ENV: production
3. Build dan Jalankan Aplikasi
docker compose build docker compose up -d
Cek container:
docker ps
4. Pengujian Aplikasi
curl http://127.0.0.1:3001
5. Struktur Direktori
/home/user/apps/nama-aplikasi/ ├── Dockerfile ├── docker-compose.yml ├── package.json ├── next.config.js ├── public/ └── src/
