docker componer compilar contenedor único

99

Usando Compose, si ejecuto docker-compose build, reconstruirá todos los contenedores:

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

Incluso cuando se reconstruye con caché, esto lleva tiempo. Entonces mi pregunta es:

¿Hay alguna forma de reconstruir solo un contenedor específico?

Marc Perrin-Pelletier
fuente

Respuestas:

202

Sí, use el nombre del servicio:

docker-compose build elasticsearch
dnefina
fuente
19
docker-compose up -d --no-deps --build <service_name>

Fuente

FTM
fuente
3

si desea ejecutar y recrear un servicio específico dentro de su archivo docker-compose, puede hacerlo de la misma manera que propuso @dnephin, como

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

Suponga que su archivo docker-compose.yml es como

version: '3'
services:
  service_1:
      .....
  service_2:
      .....
Rambou
fuente
Esto no funcionaría, si depende de algo, ejecutará todo de lo que depende.
jemiloii
De hecho, la pregunta fue sobre recrear eso, he actualizado la respuesta @MariusVanNieuwenhuyse
Rambou
-2

Tienes que hacerlo manualmente usando la etiqueta de imagen. Más detalles aquí .

TopperH
fuente