Setahu saya, hanya ENV
memungkinkan itu, seperti yang disebutkan dalam " Penggantian lingkungan "
Variabel lingkungan (dideklarasikan dengan ENV
pernyataan) juga dapat digunakan dalam instruksi tertentu sebagai variabel yang akan ditafsirkan oleh Dockerfile.
Mereka harus menjadi variabel lingkungan untuk dideklarasikan ulang di setiap wadah baru yang dibuat untuk setiap baris Dockerfile docker build
.
Dengan kata lain, variabel-variabel itu tidak ditafsirkan secara langsung di Dockerfile, tetapi dalam wadah yang dibuat untuk garis Dockerfile, karenanya penggunaan variabel lingkungan.
Hari ini, saya menggunakan keduanya ARG
( buruh pelabuhan 1.10+, dandocker build --build-arg var=value
) dan ENV
.
Menggunakan ARG
sendiri berarti variabel Anda terlihat pada waktu pembuatan, bukan saat runtime.
Dockerfile saya biasanya memiliki:
ARG var
ENV var=${var}
Dalam kasus Anda, ARG
sudah cukup: Saya menggunakannya secara khusus untuk mengatur variabel http_proxy, buruh pelabuhan itu perlu mengakses internet saat membangun.