Generator Docker Compose
Buat docker-compose.yml yang valid dari formulir: layanan, image, port, variabel lingkungan, volume, depends_on, dan kebijakan restart, dengan preset PostgreSQL, MySQL, Redis.
Mengikuti Compose Specification terbaru (tanpa kunci "version:"). Volume bernama dideklarasikan otomatis. Ganti kata sandi contoh sebelum dipakai.
Alat Terkait
Lihat SemuaApa itu Generator Docker Compose?
Buat docker-compose.yml untuk setup multi-container tanpa pusing dengan indentasi YAML. Tambahkan layanan dari preset (PostgreSQL, MySQL, Redis, MongoDB, Nginx, aplikasi Anda sendiri) atau mulai kosong, lalu isi image atau konteks build, port, variabel lingkungan, volume, dependensi, kebijakan restart, dan perintah. YAML diperbarui saat Anda mengetik dan kesalahan dijelaskan.
Cara menggunakan Generator Docker Compose
- Edit layanan contoh atau gunakan Tambah layanan untuk menyisipkan preset.
- Untuk setiap layanan atur Image (atau Konteks build (jika tanpa image)), Port (host:container), Variabel lingkungan (KEY=value), Volume (sumber:tujuan), Bergantung pada, dan Kebijakan restart.
- Perbaiki masalah yang tercantum dengan warna merah (nama, port, variabel, atau dependensi yang tidak valid).
- Unduh docker-compose.yml dan jalankan
docker compose up -d.
Contoh
Service app (build ., port 3000, NODE_ENV=production, depends on db) + PostgreSQL preset
services:
app:
build: .
restart: unless-stopped
ports:
- "3000:3000"
environment:
NODE_ENV: production
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: change-me
POSTGRES_DB: app
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} Kapan menggunakan Generator Docker Compose
Pakai untuk menyiapkan stack pengembangan lokal, demo, dan deployment sederhana satu host. Untuk produksi, Anda biasanya menambahkan health check, batas sumber daya, secret, dan jaringan secara manual, atau memakai orkestrator seperti Kubernetes. Ganti kata sandi contoh pada preset sebelum memakainya di mana pun.
Cara kerja Generator Docker Compose
Formulir diubah menjadi objek mengikuti Compose Specification terkini (tanpa kunci version: yang usang) dan diserialisasi ke YAML dengan js-yaml. Pemetaan port diberi tanda kutip, karena nilai tanpa kutip seperti 22:22 dapat dibaca sebagai angka basis-60 oleh parser YAML 1.1. Baris lingkungan KEY=value menjadi mapping, dan volume apa pun yang sumbernya berupa nama, bukan path (mis. pgdata:/var/lib/postgresql/data), dideklarasikan otomatis di bawah kunci volumes: tingkat atas. Nama layanan, format port, sintaks KEY=value, dan target depends_on divalidasi.
Kasus Penggunaan Umum
- Menjalankan aplikasi dengan PostgreSQL dan Redis secara lokal
- Membagikan lingkungan dev yang dapat direproduksi kepada tim
- Membuat file compose untuk alat self-hosted
- Mempelajari sintaks Compose lewat contoh
Catatan Keamanan
Mempublikasikan port database (mis. 5432:5432) mengeksposnya di semua antarmuka host. Hapus pemetaan port atau bind ke 127.0.0.1 di server, dan gunakan kata sandi yang kuat atau secret.
Pertanyaan Umum
Mengapa tidak ada baris version:?
Kunci version sudah usang dalam Compose Specification yang dipakai Docker Compose v2; versi terkini mengabaikannya dan menampilkan peringatan.
Apakah depends_on menunggu sampai database siap?
Tidak, ia hanya mengatur urutan start. Tambahkan healthcheck dan condition: service_healthy, atau lakukan percobaan ulang koneksi di aplikasi Anda.
Apa beda named volume dan bind mount?
Named volume (pgdata:/path) dikelola oleh Docker dan bertahan saat container dibuat ulang; bind mount (./data:/path) memetakan folder dari mesin Anda.