Docker Compose Oluşturucu

docker-compose.yml dosyasını elle yazmak, tam girinti kurallarını hatırlamak, her port eşlemesini tırnak içine almak ve Compose programınızın hangi sürüm dizesini anladığını bilmek demektir. Bu oluşturucu, hizmetleri basit alanlarla tanımlamanızı sağlar: bir ad, bir görüntü, host:container port eşlemeleri ve volume. Modern Compose spesifikasyonuna uygun (sürüm anahtarı olmadan) geçerli bir YAML dosyası ve makul varsayılan ayarlar üretir.

Compose dosyası nasıl oluşturulur

  1. 1

    Hizmet ekleyin

    Her hizmet için bir ad, görüntü, host:container port eşlemeleri ve volume belirleyin. Başlangıç için iki örnek hizmet doldurulmuştur.

  2. 2

    Satırları düzenleyin veya kaldırın

    Herhangi bir alanı doğrudan düzenleyin, + Service düğmesiyle başka bir hizmet ekleyin veya gerekmeyen bir satırı silin.

  3. 3

    Üretilen YAML dosyasını inceleyin

    Önizleme yazdıkça güncellenir: port eşlemeleri tırnak içine alınır ve modern Compose spesifikasyonunun beklediği gibi sürüm anahtarı atlanır.

  4. 4

    Dosyayı kopyalayın

    Üretilen docker-compose.yml dosyasını kopyalayıp projenizin kök dizinine yapıştırın.

Modern Compose spesifikasyonu

Compose V2 (Docker Desktop ve modern Docker Engine ile birlikte gelen eklenti) Compose Specification yönergelerini izler. version: anahtarı kullanımdan kaldırılmıştır; oluşturucu onu atlar. En üst düzey anahtarlar services, networks, volumes, configs ve secrets şeklindedir.

Hizmet yapısı

Üretime yakın bir hizmet şöyle görünür:

services:
  web:
    image: nginx:1.27-alpine
    restart: unless-stopped
    ports:
      - "80:80"
    volumes:
      - ./public:/usr/share/nginx/html:ro
    depends_on:
      app:
        condition: service_healthy
    networks:
      - frontend
      - backend
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
      interval: 30s
      timeout: 5s
      retries: 3

Volume: bind mount ve adlandırılmış volume

  • Bind mount (./app:/var/www) kapsayıcıyı konaktaki bir yola bağlar; değişiklikler anında yansıdığı için yerel geliştirme için idealdir.
  • Adlandırılmış volume (pgdata:/var/lib/postgresql/data) Docker tarafından yönetilir ve herhangi bir konak yolundan bağımsız olarak kalıcıdır; veritabanları ve rm -rf ile yanlışlıkla silmek istemediğiniz her şey için doğru seçimdir.
  • Anonim volume - kaçının. Yeniden başlatmalarda varlığını sürdürür ama docker compose down -v komutunda uyarı vermeden kaybolur.

Ağlar

Varsayılan olarak Compose, projenin adını taşıyan bir ağ oluşturur ve her hizmeti ona bağlar. Açık ağ bildirmek şu durumlarda yararlıdır:

  • Bir veritabanını herkese açık bir hizmetten yalıtmak istiyorsanız.
  • Mevcut altyapıya uymak için özel alt ağa sahip bir köprüye ihtiyacınız varsa.
  • Kapsayıcıları zaten var olan harici bir ağa bağlamak istiyorsanız (external: true).

Kaçınılması gereken yaygın hatalar

  • Sürüm anahtarı çakışmaları. Baştaki version: "3.8", healthcheck start_interval gibi yeni özelliklerin eski Compose’da çalışmasını engeller; oluşturucu sürüm anahtarını atlar.
  • Port tırnakları. 8080:80, bazı uç durumlarda YAML 60 tabanlı sayı olarak ayrıştırılır; oluşturucu port eşlemelerini her zaman tırnak içine alır.
  • Koda gömülü sırlar. Doğrudan compose.yml içine yazılan sırlar git’e işlenir. Bunları bir env_file veya platformun sır deposunda saklayın.
  • Koşulsuz depends_on. Düz depends_on: [db], hizmetin hazır olmasını değil, kapsayıcının başlamasını bekler. condition: service_healthy kullanın ve bağımlılığa bir healthcheck ekleyin.

Sık Sorulan Sorular

Güncel Compose Specification (Docker Compose V2 ile uyumlu). Dosya, modern Compose dosyalarının yazıldığı şekilde version: anahtarını atlar. Docker Compose V2.22 ve üzeri ile çalışır.

Bu sürümde form üzerinden eklenemez. Oluşturucu, görüntü, port ve volume içeren hizmet tanımlarına odaklanır. Üretilen YAML dosyasına kullanmadan önce elle ağ, ortam değişkeni, healthcheck ve başka anahtarlar ekleyebilirsiniz.

Hayır, bu araç compose.yml üzerine odaklanır. Dockerfile için, temel görüntü seçimini ve beş teknoloji için COPY/RUN sıralamasını yöneten Dockerfile Oluşturucu’yu kullanın.

Hayır. Hizmet tanımları yalnızca bu sayfada YAML dosyasını oluşturmak için kullanılır. Saklanmaz, yüklenmez veya paylaşılmaz.

İlgili Araçlar

Araç diğer dillerde mevcuttur