Docker: Actualización automática de los contenedores con Watchtower

En este mini-post voy a explicar como tener actualizados los contenedores de docker de una manera automática. Para esto se va a utilizar la herramienta watchtower. Está desarrollada por v2tec y es muy sencilla de utilizar. Lo único que hay que hacer es configurar los parámetros que ser requieran y lanzarla.
También es capaz de detectar los links entre los contenedores desplegados para actualizarlos y pararlos en un orden en el que no haya perdida de datos.

Docker-Compose

En este caso se va a desplegar mediante docker-compose

version: '3'

services:
 server:
   image: v2tec/watchtower
   restart: always
   volumes:
     - /var/run/docker.sock:/var/run/docker.sock
   command: --cleanup --schedule "0 0 3 * * 0"
   environment:
     - WATCHTOWER_NOTIFICATIONS=email
     - WATCHTOWER_NOTIFICATION_EMAIL_FROM=watchtower@example.com
     - WATCHTOWER_NOTIFICATION_EMAIL_TO=ismael@example.com
     - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=mail.example.com
     - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=watchtower@example.com
     - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=mail_pass

Parámetros adicionales

Hay diferentes variantes de lanzar esta herramienta. En este caso se lanza con un cron que la ejecute cada domingo a las 3 de la mañana. Pero se podría poner para que este revisando cambios cada X tiempo añadiendo el parámetro –interval  y el tiempo en segundos que se quiera. Por defecto son 300 segundos. Esta opción no es compatible con la opción de schedule.
Además de esto, si se activa el parámetro de label –label-enable , solo actualizará los contenedores que contengan el label: com.centurylinklabs.watchtower.enable=true  por lo que da un mayor control de los contenedores que se quieren actualizar. Si no, por defecto se actualizarán todos.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *