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. Donc ma question est:
Existe-t-il un moyen de reconstruire un seul conteneur spécifique?
Oui, utilisez le nom du service:
docker-compose build elasticsearch
docker-compose up -d --no-deps --build <service_name>
si vous souhaitez exécuter un service spécifique dans votre fichier docker-compose, vous pouvez le faire de la même manière que @dnephin, comme
$ docker-compose.exe up -d service_name
Supposons que votre fichier docker-compose.yml ressemble à
version: '3'
services:
service_1:
.....
service_2:
.....
! Pour que cela fonctionne, le service que vous souhaitez appeler ne doit pas dépendre d'autres services.
Vous devez le faire manuellement en utilisant la balise image. Plus de détails ici .