Как передать несколько переменных среды в Dockerfile? - PullRequest
0 голосов
/ 01 мая 2019

У меня есть файл docker-compose, который позволяет передавать переменные среды в виде файла (файл .env).Поскольку у меня есть несколько переменных ENV, есть ли в Dockerfile какой-либо параметр, например env_file в docker-compose, для передачи нескольких переменных среды во время сборки docker?

Это docker-compose.yml

services:
  web:
    image: "node"
    links:
        - "db"
    env_file: "env.app"

1 Ответ

0 голосов
/ 02 мая 2019

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

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

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

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

PS - Вы должны быть очень осторожны при использовании этого подхода, потому что секреты запекаются в самом изображении.

...