首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用docker-compose构建docker镜像(如果它们不存在于docker存储库中

使用docker-compose构建docker镜像(如果它们不存在于docker存储库中
EN

Stack Overflow用户
提问于 2021-06-24 22:34:43
回答 2查看 81关注 0票数 1

我试图做的是,如果一个镜像不存在于私有的docker仓库中,那么就用docker-compose从源代码中构建该镜像。

例如。

代码语言:javascript
运行
复制
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映像的引用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-05 22:31:31

我最终使用了docker compose的覆盖配置功能,并默认使用ecr镜像

也就是说。

docker-compose.yml

代码语言:javascript
运行
复制
version: '3.4'
  webapp:
    image: private_ecr_repo.amazonecr.com/webapp:latest

当我想要构建本地镜像时,我会指定多个docker-compose文件

docker-compose.local.yml

代码语言:javascript
运行
复制
version: '3.4'
  webapp:
    build:
      context: "."

使用命令docker-compose -f docker-compose.yml -f docker-compose.local.yml

第二个文件添加构建上下文,并使docker-compose在本地构建

票数 0
EN

Stack Overflow用户

发布于 2021-06-24 23:16:26

您不能在docker-compose文件中有条件地设置内容,但您可以使用compose profiles

代码语言:javascript
运行
复制
version: '3.4'
  services:
    webapp:
      image: private_ecr_repo.amazonecr.com/webapp:latest
      profiles:
        - build
    webappbuild:
    build:
      context: "."
    profiles:
      - pull

然后你可以做docker-compose --profile pull updocker-compose --profiles build up

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68117805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档