#docker #dockerfile
Вопрос:
У меня есть более сложный файл Dockerfile, который удался, когда его действительно не должно было быть (IMHO) — он использовал ARG, у которого не было значения по умолчанию и значения, предоставленного в качестве входных данных для КОПИИ. Я создал простой пример для иллюстрации. Я, наверное, чего-то не понимаю … есть ли лучший способ потребовать ARG для сборки?
Должен ли следующий файл Dockerfile выдавать ошибку? Я понял, что ARG var без значения по умолчанию требует, чтобы для успешной сборки был предоставлен ARG? И КОПИЯ не должна принимать пустой аргумент (они разрешаются во время сборки)? Или, может быть, я что-то упускаю? Спасибо за мысли …
FROM postgres:latest
ARG ARG_NO_DEFAULT
COPY $ARG_NO_DEFAULT $ARG_NO_DEFAULT
Вызывается через:
docker build -f Dockerfile . --no-cache
Производит:
11:15:08 haz:~/proj/docker/argtest $ docker build -f novals.Dockerfile . --no-cache
[ ] Building 0.4s (7/7) FINISHED
=> [internal] load build definition from novals.Dockerfile 0.0s
=> => transferring dockerfile: 127B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/postgres:latest 0.2s
=> [internal] load build context 0.0s
=> => transferring context: 924B 0.0s
=> CACHED [1/2] FROM docker.io/library/postgres:latest@sha256:117c3ea384ce21421541515edfb11f2997b2c853d4fdd58a455b77664c1adc20 0.0s
=> [2/2] COPY 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:39a43e5133ae934c6682c4a9a5f9b312d9a93270426d4e68010cdbba86a8c469 0.0s
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
11:15:28 haz:~/proj/docker/argtest $