如何在dockerfile中使用.ENV文件中的变量?

时间:2019-06-23 05:44:51

标签: docker dockerfile

我有2个文件,第一个是(dockerfile),第二个是(test.env) 当我运行dockerfile时,它将使用变量aaa which = to test.env中的index.php

dockerfile:

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

test.env:

aaa='index.php'

任何帮助将不胜感激 谢谢

3 个答案:

答案 0 :(得分:1)

您可以提供在构建阶段用作构建参数的变量。容器可以使用环境变量,但不能构建映像。

针对您的问题:

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

如果您在test.env中定义的变量未在Dockerfile中声明为参数(ARG),则会收到警告。

您的Dockerfile应该是:

FROM php:7.2.2-apache

ARG aaa

COPY ${aaa} /var/www/html

答案 1 :(得分:0)

将无法直接使用它。 您可能想尝试一下:

RecyclerView

答案 2 :(得分:-1)

您可以在Dockerfile中定义一个变量:

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

但是,如果要使用外部文件中的文件,可以通过以下方式运行容器:

docker run --env-file=test.env