docker compose build единый контейнер

107

Используя 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
...

Даже при перестроении с использованием кеша это требует времени. Итак, мой вопрос:

Есть ли способ перестроить только один конкретный контейнер?

Марк Перрен-Пеллетье
источник

Ответы:

219

Да, используйте название службы:

docker-compose build elasticsearch
днефин
источник
5

если вы хотите запустить и воссоздать определенную службу внутри вашего файла docker-compose, вы можете сделать это так же, как предложил @dnephin, например

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

Предположим, ваш файл docker-compose.yml похож на

version: '3'
services:
  service_1:
      .....
  service_2:
      .....
Рамбу
источник
Это не сработает, если это зависит от чего-то, он будет запускать все, от чего зависит.
jemiloii
На самом деле речь шла о воссоздании , что я уже обновил ответ @MariusVanNieuwenhuyse
Rambou
-2

Вы должны сделать это вручную, используя тег изображения. Подробнее здесь .

TopperH
источник