Peta dunia

 

EN: Read in English

Dunia D4: Set Hidangan

.env dan pemboleh ubah

Anda akan belajar: isi tempat kosong dalam compose.yaml dari fail .env.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Docker Engine 29 pada 31 Okt 2026

Masalahnya

compose.yaml anda tulis POSTGRES_PASSWORD: example. Anda push ke repo awam. Siapa boleh baca kata laluan itu sekarang?

Pilih satu jawapan.

Tengok

  db:
    image: postgres:18-alpine
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD:?add DB_PASSWORD to .env}
Compose berhenti sebelum apa-apa hidup: DB_PASSWORD tiada nilai. Transkrip Docker: $ docker compose up -d error while interpolating services.db.environment.POSTGRES_PASSWORD: required variable DB_PASSWORD is missing a value: add DB_PASSWORD to .env

Laptop anda~/kedai-kancil

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

  • kedai-kancil-api:latest6 layer · 244MB
  • kedai-kancil-web:latest9 layer · 92.6MB
  • nginx:1.30-alpine8 layer · 93.5MB
  • node:24-alpine4 layer · 244MB
  • postgres:18-alpine9 layer · 433MB
  • redis:8-alpine7 layer · 162MB

0 container (0 berjalan), 6 image, 0 loker.

Slip pesanan dengan tempat kosong. ${DB_PASSWORD} ialah tempat kosong yang Compose isi. Itulah interpolation: Tempat kosong seperti ${DB_PASSWORD} dalam compose.yaml yang Compose isi dari shell atau fail .env. (isi tempat kosong). :? maksudnya: berhenti kalau ia kekal kosong.

Cuba

Isi tempat kosong itu. Letak kata laluan dalam fail .env (.env file): Fail di sebelah compose.yaml dengan baris seperti DB_PASSWORD=devpass. Jangan masukkan ke Git. di sebelah compose.yaml. Kemudian hidupkan kedai.

Laptop anda~/kedai-kancil

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

  • kedai-kancil-api:latest6 layer · 244MB
  • kedai-kancil-web:latest9 layer · 92.6MB
  • nginx:1.30-alpine8 layer · 93.5MB
  • node:24-alpine4 layer · 244MB
  • postgres:18-alpine9 layer · 433MB
  • redis:8-alpine7 layer · 162MB

0 container (0 berjalan), 6 image, 0 loker.

Teka

Tingkap web ialah tempat kosong dengan nilai lalai: "${WEB_PORT:-8080}:80". Fail .env anda tiada baris WEB_PORT. Tingkap mana yang dibuka?

Pilih satu jawapan.

Semak

Leret ke kanan kalau selamat untuk commit ke Git. Leret ke kiri kalau tidak.

Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.

1 / 4

compose.yaml yang ada ${DB_PASSWORD}

compose.yaml yang ada ${DB_PASSWORD}

Anda berjaya!

Kini anda boleh isi tempat kosong dalam compose.yaml dari fail .env.

Nak tahu lebih (pilihan)

Pemboleh ubah shell menang atas .env: WEB_PORT=9090 docker compose up -d buka tingkap 9090. --env-file prod.env baca fail lain. env_file: pada service lain cerita: ia beri pemboleh ubah kepada bekas itu sendiri. docker compose config tunjuk setiap tempat kosong yang diisi. Rahsia sebenar: Dunia C3.

Misi sebenar

  1. echo "DB_PASSWORD=devpass" > .env
  2. echo ".env" >> .gitignore
  3. docker compose config

0 daripada 3 langkah siap · Tanda anda disimpan.