docker compose buduje pojedynczy kontener

107

Używając Compose, jeśli uruchomię docker-compose build, odbuduje wszystkie kontenery:

> 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
...

Nawet w przypadku przebudowy przy użyciu pamięci podręcznej zajmuje to trochę czasu. Więc moje pytanie brzmi:

Czy istnieje sposób na odbudowanie tylko jednego konkretnego kontenera?

Marc Perrin-Pelletier
źródło

Odpowiedzi:

216

Tak, użyj nazwy usługi:

docker-compose build elasticsearch
dnefina
źródło
20
docker-compose up -d --no-deps --build <service_name>

Źródło

FTM
źródło
5

jeśli chcesz uruchomić i odtworzyć określoną usługę w swoim pliku docker-compose, możesz to zrobić w taki sam sposób, jak zaproponował @dnephin, na przykład

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

Załóżmy, że twój plik docker-compose.yml jest podobny do

version: '3'
services:
  service_1:
      .....
  service_2:
      .....
Rambou
źródło
To nie zadziała, jeśli zależy od czegoś, na czym będzie działać wszystko, od czego zależy.
jemiloii
Rzeczywiście, pytanie dotyczyło odtworzenia tego, zaktualizowałem odpowiedź @MariusVanNieuwenhuyse
Rambou
-2

Musisz to zrobić ręcznie za pomocą tagu obrazu. Więcej szczegółów tutaj .

TopperH
źródło