O Watchtower é uma ferramenta que realiza a atualização automática dos seus contêineres Docker para as versões mais recentes das imagens. Ele verifica continuamente todos os contêineres em execução e os atualiza em tempo real sempre que uma nova imagem é disponibilizada. Este tutorial explica como configurá-lo utilizando o Docker Compose, incluindo o envio de notificações via Gmail e a definição de quais contêineres devem ser atualizados.
Antes de começar a instalação do Watchtower, você precisa ter:
docker-compose.yml
Crie um arquivo docker-compose.yml
em seu diretório de trabalho. O conteúdo básico do arquivo deve ser:
services:
watchtower:
image: v2tec/watchtower
container_name: watchtower
restart: unless-stopped
environment:
- [email protected]
- [email protected]
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
- [email protected]
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=sua-senha-de-app
- WATCHTOWER_POLL_INTERVAL=3600 # Verifica a cada 1 hora
volumes:
- /var/run/docker.sock:/var/run/docker.sock
No terminal, navegue até o diretório onde está o arquivo docker-compose.yml
e execute o seguinte comando:
docker-compose up -d
Isso iniciará o Watchtower em segundo plano.
Para verificar se o Watchtower está funcionando corretamente, você pode visualizar os logs com:
docker-compose logs watchtower
Por padrão, o Watchtower monitora todos os contêineres. No entanto, em algumas situações, apenas alguns contêineres precisam ser atualizados.
Existem duas opções para controlar o monitoramento:
1. Exclusão Completa - Para excluir completamente um contêiner do monitoramento pelo Watchtower, você deve definir o rótulo:
LABEL com.centurylinklabs.watchtower.enable="false"
Esse rótulo deve ser aplicado aos contêineres que você deseja ignorar.
Importante: isso não deve ser definido no próprio Watchtower.
2. Somente Monitoramento - Se você quiser que o Watchtower apenas verifique atualizações e envie notificações sem realizar a atualização, defina o rótulo:
LABEL com.centurylinklabs.watchtower.monitor-only="true"
Ou, ao executar o contêiner, você pode especificar isso na linha de comando / docker-compose:
docker run -d --label=com.centurylinklabs.watchtower.monitor-only=true someimage
Configuração de Inclusão
Se preferir incluir apenas contêineres com o rótulo de habilitação, você pode passar o sinalizador --label-enable ou a variável de ambiente WATCHTOWER_LABEL_ENABLE na inicialização do Watchtower e definir o rótulo:
LABEL com.centurylinklabs.watchtower.enable="true"
Regras de Monitoramento
O Watchtower filtra contêineres em execução com base nos critérios configurados. Um contêiner será monitorado se todos os critérios forem atendidos.
Por exemplo:
Aqui está um docker-compose.yml
de exemplo do Grafana de como ajustar para permitir as atualizações automáticas.
Lembrando que basta adicionar a seção de labels no arquivo de configuração do Docker Compose, utilizando a seguinte instrução: "com.centurylinklabs.watchtower.enable=true".
Essa configuração habilita o Watchtower, para estar sempre verificando e se necessario, atualizando a imagem do container, sem a necessidade de intervenções manuais.
grafana:
image: grafana/grafana:latest
container_name: grafana
user: '472'
restart: always
labels:
- com.centurylinklabs.watchtower.enable=true
environment:
GF_SECURITY_ADMIN_USER: ${GRAFANA_USER:-admin}
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD:-admin}
GF_PATHS_PROVISIONING: /etc/grafana/provisioning
GF_INSTALL_PLUGINS: 'grafana-clock-panel,grafana-strava-datasource'
GF_FEATURE_TOGGLES_ENABLE: 'externalServiceAccounts'
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
env_file:
- .env
ports:
- 3000:3000
depends_on:
- prometheus
Para configurar notificações por e-mail usando o Gmail, siga estas etapas:
Ativar a Verificação em Duas Etapas:
Criar uma Senha de Aplicativo:
Substitua a senha no docker-compose.yml:
docker-compose.yml
, substitua "sua-senha-de-app" pela senha de aplicativo que você gerou e reinicie o container.docker-compose restart watchtower
O Watchtower pode atualizar todos os meus containers?
Como posso parar o Watchtower?
docker-compose down
O que acontece se uma atualização falhar?
Posso usar o Watchtower em um ambiente de produção?
Como posso desinstalar o Watchtower?
docker-compose down
O Watchtower é uma solução eficiente para automatizar a gestão de atualizações de containers Docker. Este guia permitirá que você instale e configure o Watchtower utilizando o Docker Compose, incluindo a configuração de notificações por e-mail via Gmail e o monitoramento de containers específicos por meio de labels.
Para obter mais informações, consulte a documentação oficial em Watchtower.