【问题标题】:docker compose build single containerdocker compose 构建单个容器
【发布时间】:2016-05-15 17:09:15
【问题描述】:

使用 Compose,如果我运行 docker-compose build,它将重建 所有 容器:

> docker-compose build
Building elasticsearch
Step 1 : FROM elasticsearch:2.1
 ---> a05cc7ed3f32
Step 2 : RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic
 ---> Using cache
 ---> ec07bbdb8a18
Successfully built ec07bbdb8a18
Building search
Step 1 : FROM php:5.5.28-fpm
 ---> fcd24d1058c0
...

即使使用缓存重建,这也需要时间。所以我的问题是:

有没有办法只重建一个特定的容器?

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    是的,使用服务的名称:

    docker-compose build elasticsearch
    

    【讨论】:

    • 使用docker-compose build --no-cache elasticsearch 强制重建现有图像
    【解决方案2】:
    docker-compose up -d --no-deps --build <service_name>
    

    Source

    【讨论】:

      【解决方案3】:

      如果您想在 docker-compose 文件中运行重新创建特定服务,您可以按照@dnephin 建议的方式进行操作,例如

      $ docker-compose up -d --force-recreate --no-deps --build service_name
      

      假设你的 docker-compose.yml 文件是这样的

      version: '3'
      services:
        service_1:
            .....
        service_2:
            .....
      

      【讨论】:

      • 这行不通,如果它依赖于某些东西,它将运行它所依赖的一切。
      • 确实问题是关于重新创建它,我已经更新了答案@MariusVanNieuwenhuyse
      【解决方案4】:

      您可以在 docker-compose 中添加 --no-start 标志,然后再开始,因为您只会构建一个服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多