docker compose construire un conteneur unique

99

En utilisant Compose, si je lance docker-compose build, il reconstruira tous les conteneurs:

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

Même lors de la reconstruction à l'aide du cache, cela prend du temps. Ma question est donc:

Existe-t-il un moyen de reconstruire un seul conteneur spécifique?

Marc Perrin-Pelletier
la source

Réponses:

202

Oui, utilisez le nom du service:

docker-compose build elasticsearch
dnephin
la source
19
docker-compose up -d --no-deps --build <service_name>

La source

FTM
la source
3

si vous souhaitez exécuter et recréer un service spécifique dans votre fichier docker-compose, vous pouvez le faire de la même manière que @dnephin proposé, comme

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

Supposons que votre fichier docker-compose.yml ressemble à

version: '3'
services:
  service_1:
      .....
  service_2:
      .....
Rambou
la source
Cela ne fonctionnerait pas, si cela dépend de quelque chose, il exécuterait tout ce dont il dépend.
jemiloii
En effet, la question portait sur la recréation de cela, j'ai mis à jour la réponse @MariusVanNieuwenhuyse
Rambou
-2

Vous devez le faire manuellement à l'aide de la balise d'image. Plus de détails ici .

TopperH
la source