Azd Uzantılarını Otomatik Kurmak: Dev Container Kolaylığı
“Bir Dakika, Yine mi Eklenti Eksik?” derdine son!
Açıkçası, Açık net söyleyeyim—kod yazarken, proje kurarken. Ekipçe çalışırken beni hasta eden o an var ya… Her yeni repoda illâ bir şey eksik! Bir bakmışsın extension lazım, terminalde yine “azd extension install bilmemne”… Resmen takıntı olmuş bende. Mesela geçen gün ne öldü? Müşteri ortamında heyecanla dev container hazır sandım; tam o anda kritik bir azd eklentisinin unutulduğunu fark ettim. Hem de onboarding’in ortasında patladık! Takım olarak felç geçirdik resmen. Eminim bu şoku ilk kez ben yaşamadım, sız de kıyısından köşesinden yakalanmışsınız.
Peki sonra ne öldü? Microsoft mühendisleri de bizim çektiğimiz acıyı bir noktada görmüş olacak ki sihirli bir çözüm getirmişler: Lafı hiç uzatmadan söylüyorum — artık azd uzantılarınızı dev container kurulurken otomatik yükletebiliyorsunuz. Eskisi gibi komut kasmayla uğraşmıyorsun, belgeden belgeye koşturmuyorsun – ilk build sırasında her şey pırıl pırıl otomatik geliyor.
Neden Otomatik Uzantı Kurulumu Hayat Kurtarıyor?
Tamam dürüst olalım; hızdan ödün vermeyenler toplandık burada! Ben projeye girerken tek istediğim “kodu aç-yolla”. O kadar. Ama gerçek dünyada işler öyle ilerlemiyor bazen ve başımızı ağrıtan senaryolar arka arkaya patlıyor:
- Kritik bir azd extension eksik geliyor – kod hata kusuyor!
- Ekipte yepyeni biri var ama README dosyası eskiyse veya kimse güncel tutmadıysa onboarding korku filmi gibi oluyor.
- Kod base mış gibi dev container’da açılıyor ama eklentileri eklemek için gene ekstra zaman harcıyoruz (sınır bozucu!).
Büyük ekiplerde? Hah işte orada fişek gibi çoğalıyor sıkıntılar… Kaç kişi kaç farklı makinede aynısını yaşamış bilmiyorum ama yüzde yüz eminim — “Hangisini koymayı unuttum acaba?” sorusunun cevabı çoğu zaman ya environment variable çıkıyor veya extension’dan gol yiyorsun!
Kendi Takımımda Yaşanan Gerçek Bir Olay
Bunu anlatmazsam içimde kalacak 😀 Yazın üç kişilik minnoş bir ekibimiz vardı; POC çıkarıyoruz. Herkes VS Code ile aynı projede ama biri M1 Maç kullanıyor, ötekiler Windows’a gömülmüş durumda. Dev container ayarlarımız basic modda ve herkesin local’inde başka başka azd extension’ları… Sonuç? Tahmin bile etmeyin—kaos! Kod kimde çalıştı bilemedik, geriye dönüp saatlerce log inceledik (ki nefret ederim). Otomatik uzantı kurma işini keşfedince bitti o dert; şimdi container kurulunca extensions da hop diye yerleşmiş oluyor. Sorun oranı = sıfır.
Dev container kurulurken azd uzantılarının otomatik yüklenmesi, ekipçe projeye başlarken yaşanan “extension eksik” sorunlarını ortadan kaldırır ve ilk build’te ortamı hazırlar.
| Özellik | Klasik yaklaşım | Otomatik dev container |
|---|---|---|
| Extension kurulumu | Elle komut/VS Code üzerinden | Container kurulurken otomatik |
| Onboarding riski | README/extension unutulursa patlar | İlk build’te tutarlı ortam |
| Ekip içi tutarlılık | OS/cihaz farkıyla uzantılar değişir | Aynı.devcontainer ayarlarıyla standart |
| Kurulum süresi | Ek adımlar ve ek kontrol gerekir | “Kod aç-yolla” deneyimi |
Not: Otomatik kurulum için devcontainer.json içinde azd feature’ına uzantı listesi tanımlanır.
Peki Nasıl Yapıyoruz Bu Otomatik Kurulumu?
Kodu duvar kağıdı yapacak kadar kolay (ya bazen insan gözlerine inanamıyor):
{
"features": {
"ghcr.io/azure/azure-dev/azd:latest": {
"extensions": "azd-ext-example, azd-ext-another"
}
}
}
Detay isteyenlere ufak yol haritası bırakıyorum: (en azından benim deneyimim böyle)
- .devcontainer/devcontainer.json‘u bulup açıyorsun.
- features” bölümünde azd alanını kontrol ediyorsun (hani yanlış dosyada yazmaya gerek yok).
- extensions” satırı var ya — oraya yükletmek istediğin extension’ların adını virgülle ayrılmış şekilde atıyorsun; sonra kaydet!
- Sona geldik mi? Container rebuild et (“Rebuild Container”), tamamdır! 🎉
Masada gerilen şu soru tarihe karışıyor artık — “Benim platformda başka eksik çıktı mı?”. Yok kardeşim hepsi tam!
Kendi Proje Deneyimlerimden Ufak Bir İpucu
Bazen çok fazla özellik deniyorum demo/test projelerinde—işin suyunu çıkarmamak için şöyle yazıyorum genelde:
{
"features": {
"ghcr.io/azure/azure-dev/azd:latest": {
"extensions": "my-sql-ext, my-ai-ext, jmespath"
}
}
}
Dürüst olmak gerekirse, Bunun espirisi şu aslında—testten prod’a kadar kimin hangi modüllere ihtiyacı varsa ayrı uğraşa gerek olmadan toptan yükleniyor (evet JMESPath’i öneririm!). Detay ister mısınız? Kendi tecrübemi anlattığım şu link işinizi kolaylaştırabilir diye bırakıyorum:
bu yazıya bakabilirsiniz!

Peki ya Dezavantajları?
Yanı, Mükemmellik hastaları buradaysa onlara küçük uyarılar bırakacağım – sistem süper diyelim. Bazı ince tuzaklar hâlâ hayatta(!):
- Eğer yanlış extension ismini kaydedersen build aşaması tokadı basıp error fırlatabiliyor – debug işi seni bekler.
- Büyük projede rebuild yapmak biraz zaman alabiliyor çünkü tüm eklentiler taze taze kuruluyor yanı tost makinesi hızını bekleme 🙂
- Ekipte herkes hemen adapte olmayabilir – yılların alışkanlığı kolay değişmez ki! Bence değiyor yine de– performans çok artıyor.
- Bazen de custom veya private registry’den gelen uzantılar özellikle authentication/config gerektirirse tekrar dokümana dönersin (ufak ayar işi çıkabilir).
Nerelerde Kullanmasam Daha İyi Olur?
Yanı, Açıkçası minimal/küçük projeler için ekstra güç tüketmeye değer mi? Hani sadece Markdown editörüyle idare eden repo varsa fazladan plugin şovuna gerek yok — kaynak israfına dönüşebilir! Önce iki dakika düşün derim; otomasyon her yerde cillop demek bazen ters tepebilir 😉
Zaman Kazandıran Pratik İpuçları & Sonuçlarım
- Main branch’inizde.devcontainer/devcontainer.json’u mutlaka güncel tutun—yoksa ekibe masal anlatırsınız onboarding’de… 🙂
- Denerken container rebuild yaptığınızda local cache’i silerek test edin — eski image’taki bug’lardan sürpriz gol yemeyin!
- Takım onboarding dökümanlarından gereksiz “azd extension install” kısmını sonsuza dek sildirip gururlanın 😂
- Kullandığınız özel ekstension varsa sürüme dikkat edin mesela — production’da büyük vaka çıkarabiliyor kimi durumlarda!

Tamam laf bitsin 🙂
Daha Fazlasını Merak Edenlere…
Dikkatinizi çektiyse daha öğrenilecek tonla şey var Azure Developer CLI dünyasında.
- Terminalde JSON Sihirbazlığı – Azure Developer CLI’de JMESPath ile zihin açıcı yöntemler!
- App Service" data-glossary-term="Azure App Service">Azure App Service Slot Deployments Artık azd ile Çocuk Oyuncağı mı gerçekten? Taktikler & Gerçek Deneyimler burada…
Doğrusu, Sözün özü neymiş önü da bağlayayım… Dev container’ın içinde otomatik azd extension kurulumu hayat kurtarıyor gerçek anlamda;
onboardinge yeni girene “illâ en baştan hata yap!” demek zorunda kalmıyorsunuz nihayet 😊
Deneyenlerden aldığım geri bildirım pozitif,
ama hâlâ pratikte herkes kendine göre hâl çaresini uyarlasa fena olmaz bence!
Test edin — sonra bana hak verirsiniz belki.
Kaynak: Auto-install `azd` extensions in dev containers (MS Azure SDK Blog)
Sıkça Sorulan Sorular
Dev container içinde azd uzantıları otomatik nasıl yüklenir?
Dev container’ın devcontainer.json dosyasına azd uzantılarını ekleyerek, container ilk oluşturulduğunda otomatik yüklenmesini sağlayabilirsiniz. Örneğin, features kısmına ilgili uzantıları yazmak yeterli oluyor. Böylece ekstra komutlarla uğraşmanıza gerek kalmaz.
Bu otomatik uzantı kurulumu hangi durumlarda işime yarar?
Özellikle ekip olarak çalışırken ya da sürekli temiz ortamlar (GitHub Codespaces gibi) kullanırken hayat kurtarıyor. Herkesin aynı uzantılarla başlamasını sağlıyor, onboarding sürecini sadeleştiriyor ve “eksik uzantı” sorununu ortadan kaldırıyor. Ben şahsen takım içi kaosları tamamen önlediğini gördüm.
Az önce manuel yüklediğim azd extension neden dev container’da görünmüyor?
Manuel yükleme lokal makinede olur ama dev container içi ayrı bir ortamdır. O yüzden uzantıların container konfigürasyonuna eklenmesi gerekir. Yoksa container her açıldığında o uzantılar yüklü olmaz, hata alabilirsiniz.
Bu özellik sadece azd uzantıları için mi geçerli?
Hayır, dev container özellikleri sayesinde birçok VS Code uzantısını otomatik kurabilirsiniz. Ancak azd uzantıları için Microsoft’un sunduğu resmî feature imajları özellikle kolaylık sağlıyor. İsterseniz başka uzantıları da benzer biçimde ekleyebilirsiniz.
GitHub Codespaces kullanırken azd extension sorununu nasıl önlerim?
Codespaces her açıldığında sıfırdan kuruluyor, bu yüzden devcontainer.json dosyanızda azd uzantılarının otomatik kurulumu tanımlı olmalı. Ben deneyimlediğim kadarıyla, bu yöntem sayesinde Codespaces’ta “eksik uzantı” derdi hiç yaşanmıyor.
Kaynaklar ve İleri Okuma
Azure Developer CLI (azd) Feature for Dev Containers
Using Features in Dev Containers
Azure Developer CLI GitHub Repository
Visual Studio Code – Developing inside a Container
İçeriği paylaş:
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.







Yorum gönder