Как указать файл для переменных среды для докера - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть несколько переменных окружения, которые мне нужны внутри моего кода.

И когда я начинаю создавать Docker-контейнер, я хочу запечь эти переменные окружения в моем Docker-контейнере.

Я понимаю, что директива dockerfile 'ENV' делает именно это, мне интересно, есть ли способ указать файл вместо записи его в Dockerfile

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

AFAIK, такого способа внедрить переменные среды с помощью файла на этапе сборки с использованием Dockerfile не существует.Однако в большинстве случаев люди в конечном итоге используют сценарий entrypoint и вводят переменные во время docker run или docker-compose up.

В случае необходимости вам может понадобиться написать оболочку-оболочку, которая будет динамически изменять значения в Dockerfile, принимая в качестве входных данных текстовый файл пары ключ-значение, или сделать его таким, как показано ниже, ноИмя файла ENV должно быть включено в Dockerfile, как предложено @thaJeztah в link -

COPY my-env-vars /    
RUN export $(cat my-env-vars | xargs)

Это открытый вопрос - https://github.com/moby/moby/issues/28617

1 голос
/ 29 апреля 2019

Во время сборки переменные ENV недоступны.Вам нужно использовать переменные ARG.Для этого у вас есть флаг "--build-arg" в "Docker build".Он не принимает файл thou.

Переменные ENV используются работающим контейнером и могут быть внедрены в виде файла, используя флаг "--env-file" команды "docker run".

Надеюсь, это то, что вы искали, иначе дайте мне знать более подробно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...