141 votes

Comment mettre à jour des images existantes avec docker-compose?

J'ai plusieurs microservices et je suis en utilisant le panneau-composer pour les déploiements de développement. Quand il ya des changements dans les microservices base de code, je suis le déclenchement de l'ic de travail de re-déployer. J'ai en dessous de script pour ce faire. Mais chaque fois que je dois créer toutes les images à partir de zéro, puis de les exécuter. Après tout de cette opération, j'ai anonymous images. Donc je suis en utilisant le dernier script pour les supprimer. Ce que vous suggèrent de rendre ce processus plus pratique? Est-il possible de mettre à jour une image sans l'enlever avec de nouveaux changements?

- docker-compose build
- docker-compose down
- docker-compose up -d --force-recreate
- docker rmi $(docker images -f "dangling=true" -q) -f

Informations supplémentaires: je suis en utilisant gitlab-ci

209voto

yamenk Points 11478

Les conteneurs Docker sont conçus pour être éphémères. Pour mettre à jour un conteneur existant, vous supprimez l'ancien et en commencez un nouveau. Ainsi, le processus que vous suivez est le bon.

Vous pouvez simplifier les commandes en les suivantes:

 docker-compose up --force-recreate --build
docker image prune -f
 

137voto

Evgen Bodunov Points 1613

Vous pouvez le mettre à jour en utilisant:

 docker-compose pull
 

Maintenant, votre image est mise à jour. Si vous avez la version précédente du conteneur en cours d'exécution, vous devez le redémarrer pour utiliser l'image mise à jour:

 docker-compose restart
 

3voto

AlexGera Points 405

Avec la version 3 de docker-compose, vous pouvez ajouter des balises à vos images et les nettoyer en fonction de votre logique:

 build: ./dir
image: yourapp:tag
 

Cela pourrait vous aider à éviter les images anonymes à nettoyer

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X