#docker #environment-variables
#docker #переменные среды
Вопрос:
У меня похожая проблема. Мой файл Dockerfile
FROM busybox
ENV foo dev
ENV bar xyz
COPY run.sh /
ENTRYPOINT ["/bin/sh", "/run.sh"]
the run.sh файл:
#!/bin/bash
echo $foo $bar
После сборки я запускаю: docker run example --env "foo=Hallo Welt"
но я получаю вывод: dev xyz
Итак, каким-то образом docker не заменяет мои значения ENV. Что я делаю не так?
Комментарии:
1. Вам нужно поставить
--env
перед именем изображенияexample
. (Попробуйте добавитьecho command line args: "$@"
в свой скрипт и посмотрите, что произойдет.)
Ответ №1:
Все аргументы, указанные после имени изображения, обрабатываются как входные аргументы для контейнера, в отличие от флагов для Docker.
Переместите имя изображения в конце команды:
$ docker run --env "foo=Hallo Welt" example
Hallo Welt xyz