Skip to Content
IoT Uygulama GeliştirmeDocker & Compose

Docker & Compose

IronFlock uygulamaları Docker imajları olarak paketlenir. Dockerfile, uygulama kodunuzun çalışma zamanı ortamını tanımlar.

Dockerfile

Her uygulama kök klasöründe bir Dockerfile gerektirir. Bu dosya, bir temel imajdan başlayarak uygulamanız için bir Linux ortamı yapılandırır:

FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "main.py"]

Tam sözdizimi başvurusu için resmi Dockerfile belgelerine bakın.

Çok Mimarili Destek

Farklı cihaz mimarilerini hedeflemek için mimariye özgü Dockerfile’lar ekleyin:

DosyaMimariÖrnek Cihazlar
DockerfileVarsayılan (geri dönüş olarak kullanılır)Herhangi biri
Dockerfile.armv7ARMv7Raspberry Pi 3/4 (32-bit)
Dockerfile.arm64ARM64NVIDIA Jetson, RPi 4/5 (64-bit)
Dockerfile.amd64AMD64Endüstriyel PC’ler, Intel NUC’lar

Bir sürüm oluşturulurken IronFlock, her hedef mimari için en spesifik Dockerfile’ı seçer. Mimariye özgü dosya yoksa varsayılan Dockerfile kullanılır.

Docker Compose

Birden fazla servis içeren uygulamalar için (örneğin bir web sunucusu + veritabanı + işçi), Docker Compose kullanın:

# docker-compose.yml version: "3" services: app: build: . volumes: - /data:/data - /shared:/shared ports: - "5000:5000" restart: unless-stopped redis: image: redis:7-alpine restart: unless-stopped

docker-compose.yml dosyasını kök klasöre Dockerfile’ın yerine (veya yanına) koyun. Kullanıcılar cihazlarında uygulamayı başlatıp durdurduğunda, tüm Compose yığını bir birim olarak yönetilir.

Docker Compose size şu konularda daha fazla kontrol sağlar:

  • Volume bağlamaları ve veri kalıcılığı
  • Servis ağı
  • Kaynak sınırları
  • Çok container mimarileri

En İyi Uygulamalar

  • İmajları küçük tutun — Kısıtlı cihazlarda indirme sürelerini azaltmak için -slim veya -alpine temel imajları kullanın.
  • Sürümleri sabitleyin — Tekrarlanabilir derlemeler için latest yerine belirli sürüm etiketleri (python:3.11-slim) kullanın.
  • Katmanları önbelleğe alın — Docker katman önbelleklemesinden yararlanmak için bağımlılık dosyalarını uygulama kodundan önce kopyalayın.
  • .dockerignore kullanın — Gereksiz dosyaları (belgeler, testler, .git) derleme bağlamından dışarıda bırakın.
Last updated on