Peta dunia

 

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

Resepi ada ARG SHOP=kancil dan ENV GREETING. Dibina dengan --build-arg SHOP=pasar, image cetak Menu for pasar. Transkrip Docker: $ cat Dockerfile FROM alpine:3.22 ARG SHOP=kancil ENV GREETING="Selamat datang" RUN echo "Menu for $SHOP" > /menu.txt CMD ["cat", "/menu.txt"] $ docker build --build-arg SHOP=pasar -t menu:pasar . [+] Building 1.3s (6/6) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 163B 0.0s => [internal] load metadata for docker.io/library/alpine:3.22 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [1/2] FROM docker.io/library/alpine:3.22@sha256:2e0b81d60597f449baa56d 0.0s => => resolve docker.io/library/alpine:3.22@sha256:2e0b81d60597f449baa56d 0.0s => [2/2] RUN echo "Menu for pasar" > /menu.txt 1.2s => exporting to image 0.1s => => exporting layers 0.0s => => exporting manifest sha256:d3c646d00adf6045d91db20c22d64553848796ddc 0.0s => => exporting config sha256:a5d589f88cc15649078ffb6d652ef2816f0fffbfc84 0.0s => => exporting attestation manifest sha256:aa16cfcc92916117dc9d043936d37 0.0s => => exporting manifest list sha256:780c291d914f96a80974fd5abc4735c49b67 0.0s => => naming to docker.io/library/menu:pasar 0.0s => => unpacking to docker.io/library/menu:pasar 0.0s $ docker run --rm menu:pasar Menu for pasar

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.

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

      1. docker build --build-arg SHOP=pasar -t menu:pasar .
      2. docker run --rm menu:pasar printenv SHOP

      0 daripada 3 langkah siap · Tanda anda disimpan.