Storage driver pada Chapter Storage Driver dan Snapshotter menentukan tempat data tinggal, sedangkan environment variable menentukan bagaimana aplikasi berperilaku begitu container menyala — dari kata sandi database yang dibaca entrypoint, sampai nama project Compose yang dibaca plugin dari shell kita. Variabel-variabel ini tersebar di tiga wilayah yang berbeda: yang dibaca image resmi, yang dibaca program docker di sisi klien, dan yang dibaca docker compose — dan mencampuradukkan ketiganya adalah sumber kebingungan yang sering kita bedah sejak Chapter Environment Variable di Section Konfigurasi Container. Chapter ini menghimpun ketiga wilayah tersebut menjadi tiga tabel rujukan yang bisa discan sekali pandang.

Variabel Image Resmi #

Setiap image resmi mendefinisikan nama variabelnya sendiri — konsisten di dalam satu image, tetapi tidak universal antar image, pola yang kita buktikan pada Chapter Environment Variable. Enam belas entri berikut adalah yang paling sering kita setel sepanjang Course:

VariabelBerlaku untukFungsiContoh nilai
POSTGRES_PASSWORDpostgresKata sandi superuser — wajib saat inisialisasi pertamarahasia123
POSTGRES_USERpostgresNama superuser pengganti postgresbudi
POSTGRES_DBpostgresBasis data awal yang dibuat saat initkatalog
POSTGRES_PGDATApostgresLokasi direktori data di dalam container/var/lib/postgresql/data/pg
MYSQL_ROOT_PASSWORDmysqlKata sandi root saat inisialisasi pertamarahasia123
MYSQL_DATABASEmysqlBasis data awal yang dibuat saat inittoko
MYSQL_USERmysqlUser tambahan dengan hak pada basis data awalapp
MYSQL_PASSWORDmysqlKata sandi untuk user tersebutrahasia123
MARIADB_ROOT_PASSWORDmariadbPadanan kata sandi root milik MariaDBrahasia123
MARIADB_DATABASEmariadbPadanan basis data awaltoko
MARIADB_USERmariadbPadanan user tambahanapp
MARIADB_PASSWORDmariadbPadanan kata sandi userrahasia123
NODE_ENVaplikasi Node.jsMode perilaku aplikasi — produksi atau pengembanganproduction
PORTbanyak aplikasiPort yang didengarkan aplikasi — konvensi generik3000
DATABASE_URLbanyak aplikasiString koneksi lengkap ke databasepostgres://app:rahasia123@db:5432/katalog
LOG_LEVELbanyak aplikasiTingkat kelantangan log aplikasiinfo

Variabel bertanda “saat inisialisasi pertama” punya satu batasan penting: kelimanya hanya dibaca ketika direktori data masih kosong. Volume lama yang sudah terisi membuat entrypoint melompati inisialisasi, sehingga mengganti POSTGRES_PASSWORD pada volume yang sudah hidup tidak mengubah apa pun — perilaku yang kita manfaatkan dan kita waspadai pada Chapter Inisialisasi Database.

Variabel Docker CLI #

Kelompok kedua tidak dibaca container sama sekali — variabel-variabel ini dibaca program docker itu sendiri sebelum berbicara dengan daemon, cara berpindah lingkungan tanpa mengetik flag global berulang kali, materi Chapter Konfigurasi Docker CLI dan Memahami Docker Context:

VariabelBerlaku untukFungsiContoh nilai
DOCKER_HOSTklien dockerEndpoint daemon yang dituju klienunix:///var/run/docker.sock
DOCKER_CONTEXTklien dockerContext aktif bawaan untuk seluruh pemanggilanvps
DOCKER_CONFIGklien dockerLokasi direktori konfigurasi klien~/.docker
DOCKER_CLI_HINTSklien dockerMematikan petunjuk yang muncul di output perintahfalse

Perbedaan DOCKER_HOST dan DOCKER_CONTEXT adalah pemetaan ulang dari flag global: DOCKER_HOST menunjuk alamat mentah daemon, sedangkan DOCKER_CONTEXT menunjuk entitas bernama yang berisi alamat itu beserta detail lainnya. Keduanya bisa menimpa satu sama lain — urutan prioritasnya kita susuri pada Chapter Memahami Docker Context — dan keduanya berhenti berpengaruh begitu flag --host atau --context ditulis eksplisit pada perintah.

Variabel Compose #

Kelompok ketiga dibaca plugin docker compose dari environment shell kita sebelum berkas compose.yaml diproses. Variabel-variabel ini mengendalikan identitas project dan berkas mana yang dibaca, materi Chapter Compose Override dan Environment dan Profiles:

VariabelBerlaku untukFungsiContoh nilai
COMPOSE_PROJECT_NAMEdocker composeNama project pengganti nama direktorikatalog
COMPOSE_PROFILESdocker composeProfile yang aktif saat perintah dijalankandev,ci
COMPOSE_FILEdocker composeJalur berkas pengganti compose.yaml di direktori aktifcompose.yaml:compose.override.yaml
COMPOSE_IGNORE_ORPHANSdocker composeMematikan peringatan container orphantrue

Nilai COMPOSE_FILE yang memakai pemisah titik dua menunjuk lebih dari satu berkas — mekanisme utama override yang membiarkan berkas produksi menimpa berkas dasar. Nilai COMPOSE_PROFILES memakai koma untuk mengaktifkan beberapa profile sekaligus, padanan flag --profile yang sudah kita pakai pada Chapter Profiles.

Tiga tabel ini menuntaskan konfigurasi berbasis variabel — dan dengan seluruh perintah, instruksi, kunci, state, driver, serta variabel kini terhimpun, satu wilayah terakhir menanti: pesan-pesan galat yang menghubungkan semuanya ketika sesuatu berjalan salah. Chapter berikutnya, Error dan Solusi, menyusun lima belas pesan error Docker yang paling sering muncul beserta penyebab dan solusinya.

Referensi #