我试图做的是,如果一个镜像不存在于私有的docker仓库中,那么就用docker-compose从源代码中构建该镜像。
例如。
version: '3.4'
webapp:
image: private_ecr_repo.amazonecr.com/webapp:latest
build:
context: "."
因此,当镜像在private_ecr_repo上不存在时,我希望从本地源构建它。
PS:我已经看过docker-compose build --pull
docker-compose up --no-build
了,但是他们没有我想要的行为。
在文档中,当image属性与docker-compose文件中的构建上下文一起使用时,image属性值表示构建的映像的标签。当没有提到构建上下文时,image属性充当从其中提取docker映像的引用。
发布于 2021-07-05 22:31:31
我最终使用了docker compose的覆盖配置功能,并默认使用ecr镜像
也就是说。
docker-compose.yml
version: '3.4'
webapp:
image: private_ecr_repo.amazonecr.com/webapp:latest
当我想要构建本地镜像时,我会指定多个docker-compose文件
docker-compose.local.yml
version: '3.4'
webapp:
build:
context: "."
使用命令docker-compose -f docker-compose.yml -f docker-compose.local.yml
第二个文件添加构建上下文,并使docker-compose在本地构建
发布于 2021-06-24 23:16:26
您不能在docker-compose文件中有条件地设置内容,但您可以使用compose profiles
version: '3.4'
services:
webapp:
image: private_ecr_repo.amazonecr.com/webapp:latest
profiles:
- build
webappbuild:
build:
context: "."
profiles:
- pull
然后你可以做docker-compose --profile pull up
或docker-compose --profiles build up
https://stackoverflow.com/questions/68117805
复制相似问题