Как использовать переменные из файла .ENV в dockerfile? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть 2 файла, первый (dockerfile) и второй (test.env), когда я запускаю dockerfile. Я хочу, чтобы он взял переменную aaa, которая = index.php из test.env

dockerfile:

FROM php:7.2.2-apache
ENV test.env ${aaa} 
COPY ${aaa} /var/www/html

test.env:

aaa='index.php'

любая помощь будет оценена Спасибо

Ответы [ 3 ]

1 голос
/ 23 июня 2019

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

Для вашей проблемы:

docker build $(sed 's/^/ --build-arg /g' test.env | xargs) -t <your_image_tag> .

Если в test.env определены переменные, которые не объявлены в качестве аргументов (ARG) в Dockerfile вы получите предупреждение.

Ваш Dockerfile должен быть:

FROM php:7.2.2-apache

ARG aaa

COPY ${aaa} /var/www/html
0 голосов
/ 23 июня 2019

Вы можете определить переменную в вашем Dockerfile:

ARG aaa='index.php'
ENV aaa=${aaa}

Но если вы хотите использовать переменные из имеющегося у вас внешнего файла, вы можете запустить свой контейнер следующим образом:

docker run --env-file=test.env
0 голосов
/ 23 июня 2019

Было бы невозможно использовать его напрямую. Вы можете попробовать это:

COPY test.env /
RUN export $(cat test.env | xargs) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...