Pengenalan Docker Compose
Ketika aplikasi kita berkembang dan terdiri dari banyak kontainer (Frontend, Backend API, Database PostgreSQL, Redis Cache), mengetikkan perintah docker run secara manual satu per satu sangat melelahkan dan rentan kesalahan.
Docker Compose adalah alat untuk mendefinisikan dan menjalankan aplikasi multi-kontainer Docker menggunakan sebuah file konfigurasi **declarative** bertipe YAML (
docker-compose.yml).
Struktur Standar compose.yaml:
1. Binary docker-compose (v1) berbasis Python sudah EOL dan tidak lagi disertakan. Gunakan plugin Compose v2 yang dipanggil sebagai subcommand: docker compose (pakai spasi, bukan tanda hubung).
2. Key version: di baris paling atas sudah obsolete pada Compose Specification dan hanya akan memunculkan peringatan. Hapus saja. Nama file yang dianjurkan sekarang compose.yaml, meski docker-compose.yml tetap dikenali.
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- app-network
database:
image: postgres:alpine
environment:
POSTGRES_PASSWORD: secretpassword
volumes:
- db-data:/var/lib/postgresql/data
networks:
- app-network
volumes:
db-data:
networks:
app-network:
driver: bridge
Perintah Utama Docker Compose:
# Menjalankan seluruh stack aplikasi di background
docker compose up -d
# Melihat status seluruh kontainer compose
docker compose ps
# Menghentikan dan menghapus seluruh kontainer, network, & volume
docker compose down