首页 > 解决方案 > docker-compose.yaml 中 docker 存储库的变量

问题描述

有没有办法在里面docker-compose.yaml为 docker 存储库名称添加一个变量?或者在图像名称之外声明存储库的任何其他方式?

我在 AWS ECR 存储库中有一些 docker 容器,并且 docker-compose 文件包含几个声明,例如:

image: <account>.dkr.ecr.<region>.amazonaws.com/<image>:latest

我只想声明一次<account>.dkr.ecr.<region>.amazonaws.com,以尽量减少在其他帐户中部署或将图像移动到其他存储库所需的更改。

提前谢谢了!

标签: dockerdocker-compose

解决方案


是的,您可以.env在与 docker-compose.yaml 相同的文件夹中的文件中定义它

.env

ACCOUNT=myaccount
REGION=myregion
IMAGE=niceimage
VERSION=latest

docker-compose.yaml

...
image: ${ACCOUNT}.dkr.ecr.${REGION}.amazonaws.com/${IMAGE}:${VERSION}

您不需要指定 env_file = .env ,除非您需要 .env 在 docker 中的变量。


推荐阅读