Docker Compose untuk Pengembangan Lokal
Menghubungkan layanan Go dengan PostgreSQL dan Redis
Docker Compose untuk Pengembangan Lokal adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Mengapa Docker Compose?
Docker Compose mengatur beberapa kontainer (aplikasi, basis data, cache, perantara pesan) untuk pengembangan lokal, sehingga menghasilkan lingkungan yang mirip produksi tanpa penyiapan layanan secara manual.
Struktur docker-compose.yml
Tentukan layanan, jaringan, dan volume dalam berkas YAML:
services:
app:
build: .
ports: ["8080:8080"]
environment:
- DATABASE_URL=postgres://app:pass@db/mydb
depends_on: [db]
db:
image: postgres:15
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:Muat ulang langsung dengan Air
Gunakan github.com/air-verse/air untuk memuat ulang secara langsung selama pengembangan. Pasang kode sumber ke dalam kontainer dan jalankan air, bukan berkas biner:
app:
volumes:
- .:/app
command: airPemeriksaan kesehatan
Tentukan pemeriksaan kesehatan agar depends_on menunggu basis data benar-benar siap, bukan sekadar sudah dimulai:
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app"]
interval: 5s
timeout: 3s
retries: 5
app:
depends_on:
db:
condition: service_healthyPenggantian untuk lingkungan
Gunakan docker-compose.override.yml (yang digabungkan secara otomatis) untuk pengaturan khusus lokal, sehingga berkas dasar tetap bersih untuk CI:
# docker-compose.override.yml
services:
app:
volumes: [".:/app"] # source mount for live reloadJaringan bernama
Tempatkan layanan pada jaringan khusus bersama untuk penemuan layanan berbasis DNS menggunakan nama layanan:
networks:
backend:
driver: bridge
services:
app:
networks: [backend]
db:
networks: [backend]Berkas lingkungan
Gunakan kunci env_file untuk memuat berkas .env ke dalam kontainer, sehingga rahasia tidak perlu dimasukkan ke dalam YAML:
app:
env_file: .env.localMenjalankan perintah
Perintah Compose yang umum:
docker compose up -d # start in background
docker compose down -v # stop and remove volumes
docker compose logs -f app # stream app logs
docker compose exec db psql -U app mydb # run in containerMengisi basis data awal
Pasang berkas seed SQL ke dalam direktori /docker-entrypoint-initdb.d pada image postgres—berkas tersebut dijalankan saat kontainer pertama kali dibuat:
db:
volumes:
- ./migrations:/docker-entrypoint-initdb.dProfil
Gunakan profil Compose untuk memulai layanan opsional (misalnya tumpukan pemantauan) hanya saat diperlukan:
services:
grafana:
profiles: ["monitoring"]Compose dalam CI
Jalankan pengujian integrasi terhadap layanan nyata dalam CI menggunakan Compose. GitHub Actions mendukung Docker Compose secara bawaan; gunakan pemeriksaan kesehatan untuk menunggu hingga layanan siap.
Pemeriksaan Singkat
Bagaimana cara memastikan kontainer aplikasi menunggu hingga basis data siap di Docker Compose?
Ringkasan: Docker Compose
Poin penting:
- docker-compose.yml mendefinisikan semua layanan, jaringan, dan volume
- depends_on + healthcheck untuk kesiapan layanan
- Berkas penggantian untuk pengaturan pengembangan lokal; env_file untuk rahasia
- Air untuk memuat ulang secara langsung; pasang kode sumber sebagai volume
Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Docker Compose untuk Pengembangan Lokal” gratis?
Ya — teks lengkap “Docker Compose untuk Pengembangan Lokal” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Docker Compose untuk Pengembangan Lokal”?
Menghubungkan layanan Go dengan PostgreSQL dan Redis Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Docker Compose untuk Pengembangan Lokal” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Build Docker Multitahap untuk Go
- Konfigurasi Lingkungan dan Rahasia
- Docker Compose untuk Pengembangan Lokal
- Pemeriksaan Kesehatan dan Penyetelan Produksi