【问题标题】:How to define docker image name from within docker-compose.yml?如何在 docker-compose.yml 中定义 docker 镜像名称?
【发布时间】:2016-01-28 17:18:56
【问题描述】:

我的 docker compose 项目有一个名为 thing 的目录:

thing
├── Dockerfile
└── docker-compose.yml

docker-compose.yml 的内容:

master:
  build: .

每当我在此文件夹中运行 docker-compose build 时,都会生成一个名为 thing_master 的 docker 映像。我想在 docker-compose.yml 中为我的图像指定另一个名称。这可能吗?

– 我知道我可以运行docker-compose -p [image_name] build 或设置环境变量COMPOSE_PROJECT_NAME,但这不是我想要做的。

【问题讨论】:

    标签: docker containers docker-compose


    【解决方案1】:

    现在可以在 Compose 1.6 (rc2 is out now) 中实现这一点。

    使用 1.6,您可以在同一服务上同时拥有 buildimage

    version: "2"
    
    services:
      master:
        build: .
        image: my_image_name:my_tag
    

    Build 将使用图像名称来标记图像。

    【讨论】:

    • 实际上,我现在正在运行docker-compose version 1.6.0rc2, build 695c692,我无法这样定义图像名称; ERROR: Validation failed, reason(s): Service 'master' has both an image and build path specified. A service can either be built to image or use an existing image, not both.
    • 你的语法有点不对劲。您需要指定version: 2 并将master 放在services 内。我会创建一个正确的答案。
    • 这并不是一个完整的配置,只是显示相关部分。我可以冲掉剩下的。
    • 请注意,在 rc2 版本中是一个 int,但在正式版本中它将是一个字符串,所以我引用了版本来反映这一点。
    猜你喜欢
    • 2022-11-11
    • 2020-04-29
    • 2020-06-02
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 2016-10-18
    相关资源
    最近更新 更多