Ortam Değişkenleri ve .env Dosyaları
Ortam değişkenleri, değişken ikamesi ve bir .env dosyası kullanarak Compose hizmetlerini düzenli biçimde yapılandırın; böylece tek bir Compose dosyası geliştirme, hazırlık ve üretim ortamlarında çalışır.
Ortam Değişkenleri ve .env Dosyaları, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Yapılandırma Neden Dışarı Alınır
Parolaları ve bağlantı noktalarını bir Compose dosyasına sabit olarak yazmak kırılgan ve güvensizdir. Ortam değişkenleri, YAML'ı düzenlemeden davranışı ortama göre değiştirmenizi sağlar.
- Gizli bilgileri sürüm denetiminin dışında tutun
- Her yerde tek bir Compose dosyasını yeniden kullanın
- Değerleri çalışma zamanında geçersiz kılın
environment Anahtarı
Bir hizmetin içinde değişkenleri environment altında bir eşleme olarak tanımlayın. Bunlar başlangıçta konteynere aktarılır.
services:
db:
image: postgres:16
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: secretListe Biçimi
Aynı anahtar, KEY=VALUE dizelerinden oluşan bir listeyi de kabul eder. Okunabilir bulduğunuz biçimi seçin.
services:
db:
image: postgres:16
environment:
- POSTGRES_USER=app
- POSTGRES_PASSWORD=secret.env Dosyası
Compose, proje dizinindeki .env adlı dosyayı otomatik olarak okur. Değerleri burada bir kez tanımlayın ve ${VAR} yerine koyma sözdizimiyle bunlara başvurun.
# .env
PG_USER=app
PG_PASS=secret
WEB_PORT=8080Değişken Yerine Koyma
Compose dosyasının herhangi bir yerinde ${VAR} kullanın. Compose, ayrıştırmadan önce bunu .env dosyasındaki veya kabuktaki değerle değiştirir.
services:
db:
image: postgres:16
environment:
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASS}Varsayılan Değerler
${VAR:-default} ile bir yedek değer sağlayın. Değişken tanımlanmamışsa veya boşsa varsayılan değer kullanılır; böylece yığının tamamlanmış bir .env dosyası olmadan da çalışması sağlanır.
ports:
- "${WEB_PORT:-80}:80"Zorunlu Değişkenler
Bir değişkeni zorunlu kılmak için ${VAR:?message} kullanın. Değişken eksikse Compose sizin iletinizi göstererek işlemi durdurur ve yapılandırma hatasını erkenden yakalar.
environment:
API_KEY: ${API_KEY:?API_KEY must be set}env_file Yönergesi
Yalnızca yerine koyma yapmak yerine değişkenlerin bulunduğu bir dosyanın tamamını doğrudan konteynere aktarmak için env_file kullanın. Her satır bir konteyner ortam değişkenine dönüşür.
services:
api:
image: myapi:1.0
env_file:
- api.envÖncelik kuralları
Bir değişken birden çok yerde tanımlandığında Compose bir öncelik sırası uygular. Kabuk ortamı .env dosyasına göre önceliklidir; açıkça belirtilen environment: girdisi env_file girdisine göre önceliklidir.
- Kabuk / CLI
-eönceliklidir - ardından
environment: - ardından
env_file - ardından imaj varsayılanları
Çözümlenmiş değerleri inceleme
Tüm ikameler uygulanmış, tamamen çözümlenmiş Compose dosyasını yazdırmak için docker compose config komutunu çalıştırın. Gerçekte neyin çalıştırılacağını doğrulamak için oldukça kullanışlıdır.
docker compose configGizli bilgileri Git'ten uzak tutun
Yer tutucular içeren bir .env.example dosyasını commit edin ve gerçek .env dosyasını .gitignore dosyasına ekleyin. Gerçek üretim gizli bilgileri için ortam değişkenleri yerine Docker secrets kullanmayı tercih edin.
# .gitignore
.envKısa kontrol
Değişken ikamesinde varsayılan değerler nasıl çalışır?
Özet
Artık Compose'u ortam verileriyle düzenli biçimde yapılandırabilirsiniz:
environment:her hizmete değişken ekler- Bir
.envdosyası${VAR}ikamesi için veri sağlar :-varsayılan değerler verir,:?ise gerekli değerleri belirtirdocker compose configçözümlenmiş sonucu gösterir
Bu sayede tek bir Compose dosyası her ortamda taşınabilir olur.
Sıkça Sorulan Sorular
“Ortam Değişkenleri ve .env Dosyaları” dersi ücretsiz mi?
Evet — “Ortam Değişkenleri ve .env Dosyaları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Ortam Değişkenleri ve .env Dosyaları” dersinde ne öğreneceğim?
Ortam değişkenleri, değişken ikamesi ve bir .env dosyası kullanarak Compose hizmetlerini düzenli biçimde yapılandırın; böylece tek bir Compose dosyası geliştirme, hazırlık ve üretim ortamlarında çalı… DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Ortam Değişkenleri ve .env Dosyaları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Docker Compose Nedir?
- Compose Dosyası Yazma
- Birden Çok Hizmet İçeren Uygulamaları Dağıtma
- Ortam Değişkenleri ve .env Dosyaları