Переменные среды хоста не могут быть переданы во время сборки, только во время выполнения.
Можно указать только аргументы сборки:
сначала "объявив аргумент"
ARG DISPLAY_NUMBER
и затем запустив
docker build . --no-cache -t disp --build-arg DISPLAY_NUMBER=$DISPLAY_NUMBER
Вы можете работатьобойти эту проблему, используя envsubst
трюк
RUN echo $DISPLAY_NUMBER
и в командной строке:
envsubst < Dockerfile | docker build . -f -
, который перезапишет файл Docker в памяти и передаст его в Docker с измененной переменной среды.
Редактировать: Обратите внимание, что это решение довольно бесполезно, потому что вы, вероятно, все равно захотите сделать это во время выполнения, потому что это значение должно зависеть не от того, где изображение построено, а от того, где оно находитсязапустить.
Я бы лично переместил эту логику в ваш ENTRYPOINT
или CMD
скрипт.