# Konteynerler ve Compose

> Bir registry imajını, Dockerfile'ınızı ya da bir Docker Compose dosyasını rootless olarak site şeklinde çalıştırın.

Konteyner siteleri, sitenin kendi Linux kullanıcısıyla **rootless Podman** üzerinde çalışır: bir konteyner sunucuda asla root olarak davranamaz. Öndeki web sunucusu alan adını ve HTTPS'i üstlenir.

## Konteyner sitesi ekleme

**Site ekle** ile **Çalışma ortamı: Konteyner (Docker)**:

| Alan | Anlamı |
| --- | --- |
| İmaj (isteğe bağlı) | `ghcr.io/acme/app:1.0` gibi bir registry imajı. Her deploy'da deponuzdaki Dockerfile'dan derlemek için boş bırakın. |
| Konteyner portu | Uygulamanızın konteyner içinde dinlediği port. Yalnızca sunucunun `127.0.0.1` adresinde yayınlanır. |
| Compose dosyası (isteğe bağlı) | Tek bir imaj yerine deponuzdaki bir Docker Compose dosyasını çalıştırır. |
| Yayınlanan servis | Alan adınızın yönlendiği Compose servisi; konteyner portunu dinler. |

## İmaj, Dockerfile ya da Compose

- **İmaj**: her deploy imajı çeker ve konteyneri yeniden başlatır. Neyin çalıştığını bilmek için kontrol ettiğiniz etiketleri kullanın (`latest` yerine `1.4.2`).
- **Dockerfile**: bir [Git deploy'u](/tr/docs/githubdan-dagitim) kurun; her deploy deponun kökündeki `Dockerfile`'dan (ya da `Containerfile`'dan) imajı derler, sonra başlatır. Build komutları imaj derlenmeden önce çalışır.
- **Compose**: Compose dosyası podman-compose ile başlatılır. `ports` tanımları kaldırılır ve yalnızca yayınlanan servis `127.0.0.1` üzerinden erişilebilir olur; diğer servisler kendi özel ağlarında kalır. Depodan bağlanan veri klasörleri sürümler arasında korunsun diye sitenin paylaşılan klasörüne taşınır.

Korumalı alandan kaçabilecek ayarlar reddedilir: ayrıcalıklı konteynerler, sunucu ağı, sunucunun PID ya da IPC ad alanı, aygıtlar ve eklenen yetkiler (capabilities).

## Sağlık ve geri alma

Bir deploy'dan sonra site birkaç dakika içinde yanıt vermelidir (bir yığının ilk açılışı, imajlar inerken ve uygulamalar hazırlanırken 15 dakikaya kadar sürebilir). Vermezse önceki sürüm geri gelir ve deploy logu konteynerlerin son log satırlarıyla biter.

## Ortam, veri ve loglar

- Sitenin [.env](/tr/docs/gunlukler-ve-ortam) dosyası konteynerlere aktarılır.
- Konteyner siteleri sunucunun MariaDB ya da PostgreSQL'ine sunucu adresi üzerinden ulaşır; doğru `DATABASE_URL`'yi almak için [bir veritabanı bağlayın](/tr/docs/veritabanlari).
- Adlandırılmış volume'ler veriyi deploy'lar arasında korur.
- **Günlükler** bölmesi uygulamanın çıktısını **Uygulama süreci** altında gösterir.

Hazır konteynerler ve yığınlar [Konteyner uygulamaları](/tr/docs/konteyner-uygulamalari) ile [Uygulama yığınları](/tr/docs/uygulama-yiginlari) altındadır.

---
Kaynak: https://zefily.com/tr/docs/konteynerler
