CodeBlanks Logo Icon CodeBlanks

env-file

--env-file ile bir dosyadan değişken yüklemeyi öğrenirsin.

--env-file

Çok sayıda değişkeni tek tek -e ile yazmak yerine bir dosyada toplanır. Her satır AD=değer biçimindedir; # ile başlayan satırlar yorumdur. Değerler tırnak içine alınmaz (tırnaklar değerin parçası olur):

# app.env
DB_HOST=db
DB_PORT=5432
DB_USER=app
LOG_LEVEL=info

docker run -d --env-file app.env api:1.0

Sıra ve gizlilik

--env-file ve -e birlikte kullanılabilir; aynı değişken ikisinde de varsa -e kazanır. Gizli değer içeren env dosyaları sürüm kontrolüne konmaz; yerine değersiz bir örnek dosya paylaşılır:

docker run -d --env-file app.env -e LOG_LEVEL=debug api:1.0

# .gitignore
app.env
# depoya konan örnek: app.env.ornek
DB_PASSWORD=

Uygulama Env dosyası

app.env dosyasının içeriğini yaz: DB_HOST=db, DB_PORT=5432, LOG_LEVEL=info (her biri ayrı satırda). Son satırda bu dosyayı kullanarak api:1.0'dan api adlı container'ı arka planda başlatan komutu yaz.

Başlangıç kodu

terminal
# app.env
# buraya yaz

Örnek çözüm

terminal
# app.env
DB_HOST=db
DB_PORT=5432
LOG_LEVEL=info

docker run -d --name api --env-file app.env api:1.0

Beklenen çıktı

a3b4c5d6e7f8

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 app.env dosyasında LOG_LEVEL="info" yazılırsa container'da değer ne olur?

  • Hata verir
  • "info" (tırnaklarla birlikte) Doğru cevap
  • info
  • Boş

Açıklama: docker run --env-file tırnakları ayıklamaz; Compose'un .env okuması ise ayıklar.

2 Değişkenleri dosyadan oku.

Soru
docker run -d ____ app.env api:1.0
Cevap
docker run -d --env-file app.env api:1.0

Açıklama: --env-file her satırı bir değişken olarak yükler.

3 Eşleştir.

Kavram Anlamı
AD=değer Bir satır
# yorum Yok sayılır
-e ile çakışma -e kazanır
app.env.ornek Paylaşılan örnek

Başlangıç bölümündeki tüm dersler