CONTAINER APPS · REHBER
Git'ten Deploy
Bize docker-compose.yml içeren bir git deposu gösterin. Depoyu klonlar, her servisin imajını kendi altyapımızda derler — container registry'ye ihtiyacınız yok — ve tüm stack'i birbirine bağlı şekilde CDN.com.tr yönetilen konteyner platformunda yayına alırız. "Depom" ile "production'da çalışıyor" arasındaki en kısa yol budur.
docker-compose.yml içeren bir depo. build: bölümü olan servisler Dockerfile'larından derlenir; public bir image: referans eden servisler (veritabanları, cache'ler, kuyruklar) olduğu gibi kullanılır ve yönetilen eklenti ya da uygulama olarak bağlanır. Hepsi bu — registry hesabı, imaj push'u, CI kurulumu gerekmez.
1 · "Git'ten Deploy"u açın
CDN hesabınızda Platformlar → Container Apps'ı açın, App creation'ı genişletin ve (Import from Docker Compose'un yanındaki) Deploy from Git'e tıklayın.
2 · Deponuzu girin
- Depo URL'i —
https://klon adresi, örn.https://github.com/kurumunuz/uygulamaniz.git. - Branch — deploy edilecek branch (varsayılan
main). - Compose dosyası — compose dosyasının depo içindeki yolu (varsayılan
docker-compose.yml). Build context'leri bu dosyaya göre çözülür; alt klasörde tutulan compose da sorunsuz çalışır.
3 · Private depolar ve erişim
GitHub (önerilen): "Connect GitHub"a tıklayın. Tek tıklık GitHub App kurulumu ile depolarınızı açılır listeden seçersiniz — token üretmek, kopyalamak, döndürmek yok; otomatik deploy webhook'larını da (adım 5) bu bağlantı çalıştırır. App'in hangi depoları görebileceğini siz seçersiniz ve GitHub üzerinden istediğiniz an iptal edebilirsiniz.
Alternatif olarak — ya da GitLab için — This is a private repository kutusunu işaretleyip bir erişim token'ı yapıştırın. Token'a yalnızca gereken en az yetkiyi verin:
- GitHub — yalnızca bu depoya, Contents: Read-only iznine sahip fine-grained bir Personal Access Token.
- GitLab — read_repository kapsamında bir proje ya da kişisel erişim token'ı.
Yapıştırılan token yalnızca derleme sırasında deponuzu klonlamak için kullanılır. Derleme süresince yalnızca yazılır olarak saklanır; asla geri gösterilmez ve yeniden kullanılmaz — istediğiniz an iptal edebilirsiniz.
4 · Derle ve yayına al
Build & deploy'a tıklayın. Canlı ilerleme çubuğu her adımı gösterir:
- Compose okunuyor — deponuzu klonlayıp compose dosyasını çözümleriz.
- <servis> derleniyor — her
build:servisinin imajı, izole bir derleyicide Dockerfile'ından derlenir ve private registry'mize gönderilir. - Yayına alınıyor — her servis bir container app olur; tıpkı
docker-composegibi servis adıyla birbirine bağlanır, veritabanları/cache'ler eklenir.
Bittiğinde web'e bakan servisler anında bir <uid>.cdn.com.tr alt alan adında otomatik yayınlanır (kendi alan adınızı dilediğiniz zaman bağlayabilirsiniz) — çalıştıklarını görmek için Your apps'ı açın.
5 · Bağlı kalın — otomatik deploy ve dağıtım hattı
Deploy etmeden önce "Keep connected — auto-deploy on every push to this branch" kutusunu işaretleyin. Artık bu branch'e her push otomatik olarak yeniden derleyip yayına alır — ve Container Apps'te Dağıtım hattı kartı belirir:
- Kartta Test ortamını açtığınızda push'lar production yerine (kendi test URL'inde) bir Staging test kopyası deploy eder — production yalnızca Yayına al'a tıkladığınızda değişir; tek tıkla geri alınır.
- Bağlı bir depoyu çalıştırmanın önerilen yolu budur: "her commit production'ı yeniden deploy ediyor" derdi biter.
Uçtan uca anlatım: Dağıtım hattı — push → Test Ortamı, Yayına al → Production.
Nasıl çalışır (ve neden güvenli)
- İmajlarınızı biz derleriz — Dockerfile'larınızdan, registry hesabı gerekmeden. Multi-stage build'ler,
target:vebuild.argsdesteklenir. - İzole derleme ve çalıştırma. Hem derleme hem çalışan konteynerleriniz, diğer müşterilerden ve host'tan yalıtılmış sertleştirilmiş gVisor sandbox'ında koşar.
- Servis keşfi — hesabınızdaki uygulamalar, tıpkı compose'daki gibi birbirine servis adıyla erişir. Veritabanları, Redis ve NATS yönetilen eklenti olarak sağlanır.
- Güvenle yayınlayın. Canlıya almadan önce kopyayı kendi URL'inde test etmek için bunu Blue/Green preprod ile birleştirin.