6. Docker Compose
Aplikasi sungguhan jarang terdiri dari satu container. Biasanya ada web server, aplikasi backend, database, dan lainnya. Mengetik docker run panjang untuk masing-masing itu melelahkan dan rawan salah. Docker Compose menuliskan semuanya dalam satu file, lalu menjalankannya dengan satu perintah.
Contoh compose.yaml
Section titled “Contoh compose.yaml”services: web: image: nginx:alpine ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html depends_on: - app
app: image: gstnv/hello-app environment: APP_MESSAGE: Halo dari compose ports: - "3000:3000"Setiap kunci di bawah services menjadi satu container. Opsinya sama dengan docker run: ports = -p, volumes = -v, environment = -e. depends_on mengatur urutan: app dinyalakan sebelum web.
Perintah sehari-hari
Section titled “Perintah sehari-hari”docker compose up -d # buat & nyalakan semua servicedocker compose ps # status service di project inidocker compose logs app # log satu servicedocker compose restart webdocker compose down # matikan & hapus container + networkdocker compose up -d --build # build ulang image lalu nyalakanNama project diambil dari nama folder, jadi container di folder toko diberi nama toko-web-1 dan toko-app-1.
Compose di GSTNV-LAB
Section titled “Compose di GSTNV-LAB”Semua layanan GSTNV-LAB punya compose.yaml sendiri di repository. Untuk men-deploy versi baru, cukup:
git pulldocker compose up -d --build- Masuk ke folder
tokodan baca isicompose.yaml.Petunjuk
cd toko lalu cat compose.yaml - Nyalakan semua service sekaligus di background.
Petunjuk
docker compose up -d - Lihat status service dalam project ini.
Petunjuk
docker compose ps - Buka service
webdi port 8080.Petunjuk
curl localhost:8080 - Buka service
appdi port 3000.Petunjuk
curl localhost:3000 - Lihat log service
appsaja.Petunjuk
docker compose logs app - Matikan dan hapus semuanya dengan satu perintah.
Petunjuk
docker compose down
Setelah ini
Section titled “Setelah ini”Kamu sudah bisa menjalankan aplikasi apa pun di container. Langkah berikutnya: membuat container itu bisa diakses dari internet dengan aman — lanjut ke Jaringan & WireGuard dan Nginx & Reverse Proxy.

