Mettre à jour automatiquement les conteneurs Docker à l'aide de webhooks

10

J'ai créé un dépôt Github et un dépôt Docker. Les deux fonctionnent très bien ensemble: lorsque je transmets une nouvelle version de Dockerfile à Github, une nouvelle image est automatiquement créée dans le dépôt Docker.

Maintenant, j'aimerais que mes conteneurs en cours d'exécution soient automatiquement mis à jour lorsque l'image de base est (re) construite.

Comment y parvenir à l'aide de webhooks de dépôt Docker?

PJ Bergeron
la source
1
S'il existe un moyen "facile" (aussi simple que celui-ci) de réaliser la même chose sans utiliser de webhooks, je suis également intéressé. :)
PJ Bergeron

Réponses:

3

L'équipe de Century Link Labs a développé 2 nouveaux outils open source qui peuvent utiliser des hooks Web pour mettre à jour les conteneurs en cours d'exécution.

Leur première application est Zodiac qui utilise un modèle de déploiement "push". Il s'agit d'un outil léger intégré à Docker Compose , pour un déploiement et une restauration faciles des applications dockées. Il conserve un historique de tous les déploiements qui vous permet également de revenir à un déploiement précédent.

Leur 2ème application Watchtower utilise un modèle de déploiement "pull". Ce modèle permet aux conteneurs Docker résidant derrière un pare-feu de détecter et d'extraire de manière plus sûre les modifications sans exposer un port externe.

Watchtower sait comment redémarrer correctement un ensemble de conteneurs liés. Si une mise à jour est détectée pour l'une des dépendances d'un groupe de conteneurs liés, Watchtower s'arrête et démarre tous les conteneurs dans le bon ordre afin que l'application revienne correctement.

Je n'ai aucune affiliation avec Century Link Labs.

Docker Puller est une autre application plus simple que vous voudrez peut-être consulter .

Tony O'Hagan
la source
Vous pouvez également consulter cette discussion sur l' application des mises à jour de sécurité à partir des images de base
Tony O'Hagan
Certains de ces liens sont maintenant rompus mais les projets GitHub restent
Tony O'Hagan
0

Il existe également un extracteur d'image Docker plus récent

Il est connecté directement au socket de votre Docker et utilise l'API Docker pour mettre à jour vos conteneurs en cours d'exécution qui utilisent l'image que vous spécifiez dans le webhook. C'est assez simple, peut-être que d'autres options pourront être ajoutées à l'avenir

Tuxity
la source
-1

J'ai trouvé ça, mais je n'ai pas encore essayé:

https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcf ceci est un article sur l'utilisation de webhook pour déployer un conteneur avec docker hub.

Fondamentalement, il indique que vous pouvez utiliser un type d'outil (consultez le lien ci-dessous) pour gérer le webhook sur votre "machine" docker. https://github.com/iaincollins/docker-deploy-webhook

emj365
la source
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change.
Michael Hampton
@MichaelHampton Je pense que ma réponse serait utile, j'ai ajouté plus de description.
emj365