EN: Read in English
Dunia D2: Resepi
ARG lawan ENV
Anda akan belajar: tetapan untuk masa membakar (ARG) dan tetapan yang kekal dalam pek (ENV).
Teks BM belum disemak oleh penutur asli.
Disemak dengan Docker Engine 29 pada 31 Okt 2026
Masalahnya
Anda bakar menu yang sama untuk dua kedai: Kancil dan Pasar. Hanya nama kedai berbeza. Perlukah dua resepi?
Pilih satu jawapan.
Tengok
Laptop anda~/menu
- Tiada tingkap terbuka
Bekas (container)
- Belum ada container
Pek beku (image)
- alpine:3.221 layer · 12.9MB
0 container (0 berjalan), 1 image, 0 loker.
argumen binaan (ARG) (build argument (ARG)): Tetapan yang dipakai semasa membakar sahaja. Ia tiada dalam container yang berjalan. ialah ruang kosong untuk masa membakar. --build-arg SHOP=pasar mengisinya. Tanpanya, nilai asal kancil dipakai.
Cuba
Bina arahan yang bakar menu untuk Pasar.
Ketik kepingan ikut turutan yang betul.
Teka
Container dari menu:pasar jalankan printenv SHOP. Apa yang keluar?
Pilih satu jawapan.
Cuba
ENV GREETING memang kekal dalam pek. Cetak ia. Kemudian tukar dengan -e dan cetak lagi.
Laptop anda~/menu
- Tiada tingkap terbuka
Bekas (container)
- Belum ada container
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- menu:1.02 layer · 12.8MB
0 container (0 berjalan), 2 image, 0 loker.
Petunjuk
-e diletak sebelum nama image.Semak
ARG atau ENV?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Anda berjaya!
Kini anda boleh pilih ARG untuk membakar dan ENV untuk berjalan.
Nak tahu lebih (pilihan)
Jangan sesekali beri kata laluan melalui ARG atau ENV. docker history tunjuk nilai ARG, dan ENV kekal dalam setiap container. Pelajaran 12 tunjuk cara selamat: rahsia binaan.
ARG sebelum FROM boleh pilih image asas: ARG BASE=nginx:latest, kemudian FROM ${BASE}. Pelajaran 9 guna helah ini.
Misi sebenar
docker build --build-arg SHOP=pasar -t menu:pasar .docker run --rm menu:pasar printenv SHOP
0 daripada 3 langkah siap · Tanda anda disimpan.
English
You bake the same menu for two shops: Kancil and Pasar. Only the shop name changes. Do you need two recipes?
ARG is a blank for baking time. --build-arg SHOP=pasar fills it in. Without it, the default kancil is used.
Build the command that bakes a menu for Pasar.
The container from menu:pasar runs printenv SHOP. What prints?
ENV GREETING does stay in the pack. Print it. Then change it with -e and print it again.
-e goes before the image name.ARG or ENV?
You can now pick ARG for baking and ENV for running.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Docker docs: Build variables · Dockerfile reference: ARG · Dockerfile reference: ENV
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?