ARG
和ENV
都可在构建时供Dockerfile
使用,但是显然Docker Compose只允许在service.build.args
中指定ARG。 service.environment
中指定的ENV在构建时显然不可见(在此路径下这也很有意义)。
因此,如果我的构建依赖于ENV(以及ARG),并且如果我使用docker-compose build
进行构建,该如何在docker-compose.yaml
内提供构建时ENV?
答案 0 :(得分:0)
无法通过docker build
或Compose build:
块将环境变量从外部传递到Dockerfile中。您只能指定参数。
如果确实需要在构建时指定环境变量,则可以将其作为参数传递,然后在Dockerfile中设置环境变量
ARG FOO
ENV FOO ${FOO}
如果您更改其中一项,则必须重建映像。这使得该技术不适用于特定于部署的设置,例如用户ID,主机名,等。容器侧端口号和文件系统路径作为映像的固定属性也是可以的。>