Loading...

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.

Neye ihtiyacınız var

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.

Depo, branch, compose yolu ve private depo erişim token'ı alanlarıyla Deploy from Git paneli
Deploy from Git paneli: depo URL'i, branch, compose dosya yolu ve — private depolar için — en-az-yetki yönlendirmeli, yalnızca yazılır erişim token'ı alanı.

2 · Deponuzu girin

  • Depo URL'ihttps:// 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.
  • GitLabread_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-compose gibi 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: ve build.args desteklenir.
  • İ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.