Atualizar automaticamente contêineres do Docker usando webhooks

10

Eu criei um repositório Github e um repositório Docker. Ambos funcionam muito bem juntos: quando eu envio uma nova versão do Dockerfile para o Github, uma nova imagem é automaticamente criada dentro do repositório do Docker.

Agora, eu gostaria que meus contêineres em execução fossem atualizados automaticamente quando a imagem base for (re) criada.

Como consegui-lo usando os webhooks de repositórios do Docker?

PJ Bergeron
fonte
1
Se existe uma maneira "fácil" (tão fácil quanto essa) de conseguir a mesma coisa sem usar webhooks, também estou interessado. :)
PJ Bergeron

Respostas:

3

A equipe da Century Link Labs desenvolveu duas novas ferramentas de código aberto que podem usar ganchos da Web para atualizar contêineres em execução.

Seu primeiro aplicativo é o Zodiac, que usa um modelo de implantação "push". É uma ferramenta leve, construída sobre o Docker Compose , para fácil implantação e reversão de aplicativos dockerizados. Ele mantém um histórico de todas as implantações que também permite reverter para uma implantação anterior.

O segundo aplicativo da Watchtower usa um modelo de implantação "pull". Esse modelo permite que os contêineres do Docker que residem atrás de um firewall detectem e obtenham alterações com mais segurança sem expor uma porta externa.

A Sentinela sabe como reiniciar adequadamente um conjunto de contêineres vinculados. Se uma atualização for detectada para uma das dependências em um grupo de contêineres vinculados, a Torre de Vigia parará e iniciará todos os contêineres na ordem correta, para que o aplicativo volte a funcionar corretamente.

Não tenho afiliação com a Century Link Labs.

Outro aplicativo mais simples que você pode querer dar uma olhada é o Docker Puller .

Tony O'Hagan
fonte
Você também pode querer dar uma olhada nesta discussão sobre a aplicação de atualizações de segurança a partir de imagens de base
Tony O'Hagan
Alguns desses links estão quebrados, mas os projetos do GitHub permanecem
Tony O'Hagan
0

Há também um docker-image-puller mais recente

Ele é conectado diretamente ao soquete do Docker e usa a API do Docker para atualizar seus contêineres em execução, que usam a imagem especificada no webhook. É bem simples, talvez mais opções possam ser adicionadas no futuro

Tuxity
fonte
-1

Encontrei isso, mas ainda não tentei:

https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcf Este é um artigo sobre o uso do webhook para implantar contêiner com o docker hub.

Basicamente, ele diz que você pode usar o tipo de ferramenta (verifique o link abaixo) para lidar com o webhook na "máquina" do docker. https://github.com/iaincollins/docker-deploy-webhook

emj365
fonte
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada.
Michael Hampton
@ MichaelHampton Acho que minha resposta seria útil, adicionei mais descrição.
Emj365