
Mengorkestrasi Banyak Peti Kemas
Di artikel sebelumnya kita tahu bahwa Docker membungkus aplikasi ke dalam satu Container. TAPI, aturan emas (Best Practice) di dunia Docker adalah: Satu Container hanya boleh menjalankan SATU proses/aplikasi!
Artinya, kamu tidak boleh memasukkan Node.js (Backend) dan PostgreSQL (Database) ke dalam satu kotak yang sama. Mereka harus dipisah menjadi 2 kotak. Jika kamu punya React (Frontend) dan Redis (Cache), berarti kamu punya 4 Container terpisah.
Bagaimana cara menyalakan keempat kotak ini secara berurutan dan memastikan mereka bisa saling berkomunikasi? Mengetik perintah docker run empat kali di terminal sangatlah melelahkan. Di sinilah Docker Compose menyelamatkan hidupmu.
Sihir File docker-compose.yml
Docker Compose adalah alat (bawaan Docker) yang mengizinkanmu menulis Naskah Skenario dalam sebuah file teks bernama docker-compose.yml. Di file ini, kamu mendefinisikan seluruh infrastruktur yang dibutuhkan aplikasimu.
Contoh Naskah Sederhana:
version: '3.8'
services:
# Kotak 1: Database
db_postgres:
image: postgres:15
environment:
POSTGRES_PASSWORD: rahasia123
ports:
- "5432:5432"
# Kotak 2: Backend API
api_backend:
build: ./backend-folder
ports:
- "5000:5000"
depends_on:
- db_postgres # Jangan nyalakan API sebelum DB menyala!
# Kotak 3: Frontend React
web_frontend:
build: ./frontend-folder
ports:
- "3000:3000"Satu Perintah untuk Menguasai Semuanya
Setelah file YAML tersebut dibuat, kamu cukup membuka Terminal dan mengetikkan satu perintah sakti:
docker-compose up -dDuduklah bersandar dan lihat keajaibannya! Docker Compose akan men-download mesin Postgres, merakit Backend-mu, merakit Frontend-mu, membuatkan Jaringan WiFi virtual (Network) rahasia agar ketiganya bisa saling mengobrol, dan menyalakan semuanya dengan urutan yang benar.
Ketika kamu selesai bekerja dan ingin mematikannya, cukup ketik docker-compose down. Komputermu akan kembali bersih. Alat ini adalah keharusan mutlak bagi setiap Fullstack Developer modern!
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates