web-dev-qa-db-fra.com

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

J'ai plusieurs microservices et j'utilise docker-compose pour les déploiements de développement. Quand il y a des changements dans la base de code de microservices, je déclenche le travail ci pour les redéployer. J'ai ci-dessous le script pour faire ceci. Mais chaque fois, je dois construire toutes les images à partir de rien, puis les exécuter. Après toutes ces opérations, j’ai anonymous images. J'utilise donc le dernier script pour les supprimer. Que suggéreriez-vous pour rendre ce processus plus pratique? Est-il possible de mettre à jour une image existante sans la supprimer avec les nouvelles modifications?

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

Informations supplémentaires: j'utilise gitlab-ci

26
Efe

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

Vous pouvez simplifier les commandes aux suivantes:

docker-compose up --force-recreate --build
docker image Prune -f
47
yamenk

Vous pouvez le mettre à jour en utilisant:

docker-compose pull
12
Evgen Bodunov

Avec docker-compose version 3, vous pouvez ajouter des tags à vos images et les nettoyer dépend de votre logique:

build: ./dir
image: yourapp:tag

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

2
AlexGera