如何在docker-compose.yml中指定构建时ENV

时间:2020-07-28 13:04:11

标签: docker docker-compose

ARGENV都可在构建时供Dockerfile使用,但是显然Docker Compose只允许在service.build.args中指定ARG。 service.environment中指定的ENV在构建时显然不可见(在此路径下这也很有意义)。

因此,如果我的构建依赖于ENV(以及ARG),并且如果我使用docker-compose build进行构建,该如何在docker-compose.yaml内提供构建时ENV?

1 个答案:

答案 0 :(得分:0)

无法通过docker build或Compose build:块将环境变量从外部传递到Dockerfile中。您只能指定参数。

如果确实需要在构建时指定环境变量,则可以将其作为参数传递,然后在Dockerfile中设置环境变量

ARG FOO
ENV FOO ${FOO}

如果您更改其中一项,则必须重建映像。这使得该技术不适用于特定于部署的设置,例如用户ID,主机名,等。容器侧端口号和文件系统路径作为映像的固定属性也是可以的。