我怀疑这个问题的答案是否定的,因为FROM命令在文件中首先(在任何ENV语句之前),但是你能参数化一个docker容器创build的基础图像的版本吗?
例如
FROM image-name:4.6.${patchVersion}
我看这个的原因是为了支持CI / CD。 我已经分离了构build容器和部署容器,部署容器的patchVersion是由构build生成的。 我也想这样生成构build容器的补丁号,然后从部署容器中引用它
TL; DR不仅与Docker
长:
该文件说:
Dockerfile中的以下指令列表支持环境variables:
- 加
- 复制
- ENV
- 暴露
- 标签
- 用户
- WORKDIR
- 卷
- STOPSIGNAL
https://docs.docker.com/engine/reference/builder/#environment-replacement
您可以使用envsubst https://linux.die.net/man/1/envsubst在Dockerfile docker build之前重写Dockerfile
envsubst < Dockerfile.template_with_variable > Dockerfile docker build .