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
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
Vous pouvez le mettre à jour en utilisant:
docker-compose pull
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