args:
только влияют на построение исходного изображения, и первоначальная сборка изображения не знает ни об остальном контексте, который вы можете определить в вашем docker-compose.yml
файле.
Если вы надеетесь использовать это для конфигурации времени выполнения, настройка environment:
будет лучше. В отличие от аргументов времени сборки, вам не придется перестраивать образ, просто чтобы изменить настройку переменной среды. Удалите строку ARG
из Dockerfile
и измените файл docker-compose.yml
на
build:
context: myimg
environment:
- FOO=bar
Если вы хотите, чтобы значение ARG
было видимо как переменная среды позже (например, в скрипте ENTRYPOINT
), вам также необходимо добавить для него параметр ENV
; пара примеров в документации Dockerfile . Это может выглядеть как
FROM ...
ARG FOO
ENV FOO=$FOO
COPY run.sh /
ENTRYPOINT ["/run.sh"]