Skip to main content

3.2 DIUN. Notificador de nuevas imágenes

diun-logo.png

Imagen obtenida de https://crazymax.dev/diun/

Esta herramienta sirve para...

enterarnos cuando una nueva imagen (para docker) está disponible. DIUN son las siglas de Docker Image Update Notifier.

Web de proyecto y otros enlaces de interés

Web del proyecto: https://crazymax.dev/diun/

Repositorio de código: https://github.com/crazy-max/diun

Puesta en marcha

Si bien hay varios modos de desplegar el servicio DIUN nosotros, en este curso, vamos a optar por hacerlo a través de docker-compose pues creo es el modo mas sencillo en el que podemos hacer convivir varios servicios sin que unos acepten a otros. Para ello accedemos al terminal y escribimos lo siguiente:

cd $HOME
mkdir diun
cd diun
nano docker-compose.yml

Dentro del fichero escribimos el siguiente contenido

version: "3.5"

services:
  diun:
    image: crazymax/diun:latest
    container_name: diun
    command: serve
    volumes:
      - "./data:/data"
      - "./diun.yml:/diun.yml:ro"
      - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      - "TZ=Europe/Madrid"
      - "LOG_LEVEL=info"
      - "LOG_JSON=false"
    restart: always

Para salir del fichero pulsaremos control + x y guardaremos los cambios. Posteriormente ponemos en marcha los contenedores con docker-compose up -d Aparecerá en pantalla algo similar a

diun.png

Elaboración propia

Y, si queremos, podemos ejecutar docker ps | grep diun para comprobar si entre todos los contenedores docker en ejecución hay alguno con el nombre diun. Veremos algo similar a

diun-grep.png

Elaboración propia

De acuerdo a la documentación sobre comandos que aparece en https://crazymax.dev/diun/usage/command-line/ podemos ejecutar cualquiera de los comandos que ahí aparecen ejecutando docker exec diun comando por ejemplo docker exec diun diun image list que nos mostrará algo similar a

diun-exec.png

Elaboración propia

De todos modos, lo interesante de esta herramienta es que sea ella misma quién nos notifique cuando hay una nueva imagen sin necesidad de que nosotros/as ejecutemos nada. Para ello hay que configurar las notificaciones de acuerdo a la documentación que aparece aquí https://crazymax.dev/diun/config/notif/ ¡Vamos allá! En la terminal escribiremos:

cd $HOME/diun
nano diun.yml

Dentro del fichero, que será en el cual establezcamos los métodos de notificación, escribimos el siguiente contenido:

watch:
  workers: 20
  schedule: "0 */6 * * *"
  firstCheckNotif: false

providers:
  docker:
    watchByDefault: true

notif:
  mail:
    host: localhost
    port: 25
    ssl: false
    insecureSkipVerify: false
    from: pabloruixxxia@gmail.com
    to:
      - pabloruixxxia@gmail.com
    templateTitle: "{{ .Entry.Image }} released"
    templateBody: |
      Docker tag {{ .Entry.Image }} which you subscribed to through {{ .Entry.Provider }} provider has been released.
  telegram:
    token: xxxxxx
    chatIDs:
      - xxxxxx
    templateBody: |
      Docker tag {{ .Entry.Image }} which you subscribed to through {{ .Entry.Provider }} provider has been released.

A continuación reiniciamos el contenedor con los comandos

cd $HOME/diun
docker-compose down
docker-compose up -d

Para salir del fichero pulsaremos control + x , guardaremos los cambios y ¡et voilà! ya están configuradas las notificaciones para Telegram y email. Deberás cambiar los valores a tus valores y establecer solo aquellos servicios a través de los que quieres que se te notifique.

En mi caso personal lo tengo configurado para que me notifique a través de un bot de Telegram por ello recibo notificaciones con este aspecto:

diun-notificacion.jpg

Elaboración propia