Docker Compose ile Geliştirme Ortamı Nasıl Kurulur?

Docker Compose ile Geliştirme Ortamı Nasıl Kurulur?

Docker Compose Nedir?

Docker Compose, birden fazla konteyneri tek bir yapılandırma dosyası üzerinden tanımlamayı ve tek komutla çalıştırmayı sağlayan bir araçtır. Web sunucusu, veritabanı ve önbellek servisi gibi birbirine bağımlı bileşenleri ayrı ayrı kurmak yerine, hepsini docker-compose.yml dosyasında tanımlayıp docker compose up komutuyla tek seferde ayağa kaldırabilirsiniz.

Neden Docker Compose Kullanmalısınız?

  • Tutarlı ortam: Geliştirici bilgisayarında, test sunucusunda ve canlı ortamda aynı yapılandırma çalışır.
  • Hızlı kurulum: Yeni bir geliştirici projeye katıldığında tüm ortamı tek komutla kurabilir.
  • İzolasyon: Her servis kendi konteynerinde çalışır, sistem genelinde çakışma riski ortadan kalkar.
  • Kolay temizlik: Proje silindiğinde konteynerler ve volumeler tek komutla kaldırılabilir.

Örnek Bir Geliştirme Ortamı Yapılandırması

Tipik bir PHP/Laravel projesi için docker-compose.yml dosyası genellikle üç temel servisten oluşur:

  • web: Uygulamanın çalıştığı PHP/Laravel servisi
  • db: PostgreSQL veya MySQL veritabanı servisi
  • redis: Önbellekleme ve oturum yönetimi için Redis servisi

Örnek yapı şu şekildedir:

services:
  web:
    build: .
    ports:
      - "8000:80"
    volumes:
      - .:/var/www/html
    depends_on:
      - db
      - redis

  db:
    image: postgres:16
    environment:
      POSTGRES_DB: paxost_app
      POSTGRES_PASSWORD: secret
    ports:
      - "5432:5432"
    volumes:
      - dbdata:/var/lib/postgresql/data

  redis:
    image: redis:alpine
    ports:
      - "6379:6379"

volumes:
  dbdata:

Geliştirme Ortamını Çalıştırma

Yapılandırma dosyası hazır olduğunda ortamı başlatmak için tek komut yeterlidir:

docker compose up -d

Bu komut tüm servisleri arka planda başlatır. Logları takip etmek için:

docker compose logs -f

Ortamı durdurmak için:

docker compose down

Dikkat Edilmesi Gereken Noktalar

  • Volume kullanımı: Veritabanı verilerinin konteyner silindiğinde kaybolmaması için volume tanımlamayı unutmayın.
  • Ortam değişkenleri: Şifre ve hassas bilgileri doğrudan dosyaya yazmak yerine .env dosyası kullanmak daha güvenlidir.
  • depends_on sınırı: Bu ayar sadece konteynerin başlatılma sırasını belirler, servisin tam olarak hazır olmasını garanti etmez. Kritik projelerde healthcheck eklemek önerilir.

Paxost Olarak Yaklaşımımız

Paxost'ta geliştirdiğimiz tüm projelerde Docker Compose tabanlı standart geliştirme ortamları kullanıyoruz. Bu sayede müşterilerimize teslim ettiğimiz projeler, farklı sunucu ortamlarında da öngörülebilir ve tutarlı şekilde çalışıyor.

Projeniz için modern ve sürdürülebilir bir altyapı kurmak isterseniz bizimle iletişime geçebilirsiniz.

Sık Sorulan Sorular

Docker Compose ile Docker arasındaki fark nedir?

Docker tek bir konteyneri yönetirken, Docker Compose birden fazla konteyneri tek bir yapılandırma dosyasıyla birlikte yönetmenizi sağlar.

Docker Compose canlı ortamda kullanılabilir mi?

Küçük ve orta ölçekli projelerde kullanılabilir, ancak büyük ölçekli ve yüksek trafikli sistemlerde Kubernetes gibi orkestrasyon araçları daha uygun olabilir.

Veritabanı verilerim konteyner silindiğinde kaybolur mu?

Volume tanımlaması yapıldığında veriler korunur. Volume kullanılmazsa konteyner silindiğinde veriler de kaybolur.

Tüm Yazılar

İlgili Yazılar.

Mesajınız alındı! En kısa sürede dönüş yapacağız.