docker compose build único contêiner


98

Usando Compose, se eu executar docker-compose build, ele reconstruirá todos os contêineres:

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

Mesmo ao reconstruir usando o cache, isso leva tempo. Então, minha pergunta é:

Existe uma maneira de reconstruir apenas um contêiner específico?

Respostas:


200

Sim, use o nome do serviço:

docker-compose build elasticsearch

18
docker-compose up -d --no-deps --build <service_name>

Fonte


3

se você deseja executar e recriar um serviço específico dentro de seu arquivo docker-compose, pode fazê-lo da mesma maneira que @dnephin propôs, como

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

Suponha que seu arquivo docker-compose.yml seja como

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

Isso não funcionaria, se dependesse de algo, executaria tudo de que depende.
jemiloii

Na verdade, a pergunta era sobre recriar isso, atualizei a resposta @MariusVanNieuwenhuyse
Rambou

-1

Você tem que fazer isso manualmente usando a tag de imagem. Mais detalhes aqui .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.