在Dockerfile FROM参数中使用–build-arg值
我目前使用AWS ECR托pipe我的项目图像,我需要参数FROM在Dockerfile中是根据命令行发送的–build-argdynamic的。 例:
$ docker build --build-args region=us-east-1 . // Dockerfile FROM aws.ecr.huge.url.${region}/repo:php-apache WORKDIR /var/www RUN echo "@@@"
$ {region}永远不会被replace,我得到一个错误,说图像不存在。
如果我运行echo $ {region}它有效,问题似乎与FROM指令。
有什么办法可以实现吗?
这是不支持,因为你已经发现,并在variables扩展限制中logging :
Dockerfile中的以下指令列表支持环境variables:
- 加
- 复制
- ENV
- 暴露
- 标签
- 用户
- WORKDIR
- 卷
- STOPSIGNAL
以及:
- ONBUILD(当与上面支持的指令之一结合使用时)
为了解决这个问题,我怀疑你需要先用外部进程生成你的Dockerfile,比如用sed "s/__region__/$region/" <Dockerfile.in >Dockerfile
命令。
您的Dockerfile中缺lessARG。 请试试这个。
$ docker build --build-args region=us-east-1 . // Dockerfile ARG region FROM aws.ecr.huge.url.${region}/repo:php-apache WORKDIR /var/www