Docker变量范围

Docker变量范围,docker,Docker,我想知道在哪里可以看到我定义的变量。例如,我有三个文件: .env BLA=1 docker-compose.xml IS_ONE=${BLA} Dockerfile RUN echo "$BLA" >> file.txt 我想知道这种关系,例如: 是否需要在所有文件中定义变量?或者有这样的关系 docker-compose.xml只能看到.evn变量吗 Dockerfile只能看到docker-compose.xml变量吗 如果可能的话,我需要在哪里声明一个变量以在Dock

我想知道在哪里可以看到我定义的变量。例如,我有三个文件:

.env 
BLA=1

docker-compose.xml
IS_ONE=${BLA}

Dockerfile
RUN echo "$BLA" >> file.txt
我想知道这种关系,例如:

是否需要在所有文件中定义变量?或者有这样的关系

docker-compose.xml只能看到.evn变量吗

Dockerfile只能看到docker-compose.xml变量吗

如果可能的话,我需要在哪里声明一个变量以在Dockerfile中自动触发的bash脚本中使用,或者稍后在容器控制台中使用。

这里有很多示例:

如果需要自定义docker compose本身,则使用.env文件。 例如,我想在我的容器名中包含构建id,我的.env文件应该包含

BUILD_ID=20

docker-compose.yml会

containername:foo-${BUILD\u ID}

如果我想在容器运行时将环境变量传递到容器中,我使用

环境: -FOO_VAR=bar

如果我想将多个环境变量传递到容器中, docker-compose.yml会

环境文件:我的容器环境

如果要动态生成FOO_变量的值,这是一种简单的方法

是直接在docker compose中使用设置环境值还是使用文件取决于:

这些价值观是动态的吗?如果是,请使用文件并填充正确的值 在文件中使用一些脚本,比如jenkins可以设置我的构建ID 我的.env文件

它们是“秘密”吗?如果是,请使用文件,不要将.env或my_container_env文件签入repo-您必须管理这些文件 分开