0Pricing
Go Academy · Ders

Yerel Geliştirme için Docker Compose

Go hizmetini PostgreSQL ve Redis'e bağlama

Yerel Geliştirme için Docker Compose, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Docker Compose neden kullanılır?

Docker Compose, yerel geliştirme için birden çok kapsayıcıyı (uygulama, veritabanı, önbellek, ileti aracısı) düzenler ve hizmetleri elle kurmadan üretim benzeri bir ortamı yeniden oluşturur.

docker-compose.yml yapısı

Hizmetleri, ağları ve depolama birimlerini bir YAML dosyasında tanımlayın:

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:

Air ile canlı yeniden yükleme

Geliştirme sırasında canlı yeniden yükleme için github.com/air-verse/air kullanın. Kaynak kodunu kapsayıcıya bağlayın ve ikili dosya yerine Air çalıştırın:

app:
  volumes:
    - .:/app
  command: air

Sağlık denetimleri

depends_on öğesinin veritabanı yalnızca başlatılmış değil, gerçekten hazır olana kadar beklemesi için sağlık denetimleri tanımlayın:

db:
  healthcheck:
    test: ["CMD-SHELL", "pg_isready -U app"]
    interval: 5s
    timeout: 3s
    retries: 5
app:
  depends_on:
    db:
      condition: service_healthy

Ortam için geçersiz kılmalar

Yerel ortama özgü ayarlar için otomatik olarak birleştirilen docker-compose.override.yml dosyasını kullanın; böylece temel dosya CI için temiz kalır:

# docker-compose.override.yml
services:
  app:
    volumes: [".:/app"]  # source mount for live reload

Adlandırılmış ağlar

Hizmetleri, hizmet adına göre DNS tabanlı hizmet keşfi sağlamak üzere ortak bir özel ağa yerleştirin:

networks:
  backend:
    driver: bridge
services:
  app:
    networks: [backend]
  db:
    networks: [backend]

Ortam dosyaları

Gizli bilgileri YAML dışında tutarak .env dosyalarını kapsayıcıya yüklemek için env_file anahtarını kullanın:

app:
  env_file: .env.local

Komutları çalıştırma

Yaygın Compose komutları:

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 container

Veritabanını başlangıç verileriyle doldurma

SQL başlangıç verisi dosyalarını postgres imajındaki /docker-entrypoint-initdb.d dizinine bağlayın — bunlar ilk kapsayıcı oluşturulduğunda çalıştırılır:

db:
  volumes:
    - ./migrations:/docker-entrypoint-initdb.d

Profiller

İsteğe bağlı hizmetleri (örneğin bir izleme yığını) yalnızca gerektiğinde başlatmak için Compose profillerini kullanın:

services:
  grafana:
    profiles: ["monitoring"]

CI'da Compose

CI'da tümleştirme testlerini Compose ile gerçek hizmetlere karşı çalıştırın. GitHub Actions, Docker Compose'u yerel olarak destekler; hizmetlerin hazır olmasını beklemek için sağlık denetimlerini kullanın.

Hızlı Kontrol

Docker Compose'ta uygulama kapsayıcısının veritabanı hazır olana kadar beklemesini nasıl sağlarsınız?

Özet: Docker Compose

Temel noktalar:

  • docker-compose.yml tüm hizmetleri, ağları ve depolama birimlerini tanımlar
  • Hizmetin hazır olması için depends_on ve sağlık denetimi
  • Yerel geliştirme ayarları için geçersiz kılma dosyaları; gizli bilgiler için env_file
  • Canlı yeniden yükleme için Air; kaynağı bir depolama birimi olarak bağlayın

Sıkça Sorulan Sorular

“Yerel Geliştirme için Docker Compose” dersi ücretsiz mi?

Evet — “Yerel Geliştirme için Docker Compose” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Yerel Geliştirme için Docker Compose” dersinde ne öğreneceğim?

Go hizmetini PostgreSQL ve Redis'e bağlama Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Yerel Geliştirme için Docker Compose” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Go için Çok Aşamalı Docker Derlemeleri
  2. Ortam Yapılandırması ve Gizli Bilgiler
  3. Yerel Geliştirme için Docker Compose
  4. Sağlık Denetimleri ve Üretim Ayarları
← Go Academy Sayfasına Dön