Servicio para actualizar imágenes docker

· 3 min · @Self-Hosting · #VPS #Docker

Como he tenido malas experiencias a la hora de usar servicios para mantener las imágenes actualizadas, he cambiado el servicio que tenía actualmente whatsup por cup.

En estos 3 artículos donde explico todo el proceso:

Pero no me hacía mucha gracia, así que cambié a Whatsup, pero me volvía un poco loco y buscaba algo más fácil y simple, que simplemente me informara de lo que hay, sin tantas complicaciones como me daba Whatsup.

Hasta que encontré este artículo en el blog de Lázaro donde daba una alternativa a Whatsup. Este nuevo servicio es cup, donde el funcionamiento es muy parecido a Whatsup pero más simple.

Así que me leí el artículo y me resultó muy interesante así que lo he instalado en mi servidor y me ha gustado mucho y lo he dejado instalado porque me parece muy interesante. Aunque tiene algunos errores, ten en cuenta, que este servicio está en construcción, así que a lo mejor cuando lo uses tú, el error que tengo yo (no puedo cambiar el tema de la web), puede que esté ya solucionado, pero…

La instalación es muy simple. Yo en mi caso lo he instalado a través de docker-compose de la siguiente manera:

cup:
  image: ghcr.io/sergi0g/cup:latest
  container_name: cup # Optional
  restart: unless-stopped
  networks:
    - internal
  command: -c /config/cup.json serve
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - ${HOME}/config/cup/cup.json:/config/cup.json
  labels:
    - traefik.enable=true
    - traefik.http.services.cup.loadbalancer.server.port=${PORT}
    - traefik.http.routers.cup.entrypoints=websecure
    - traefik.http.routers.cup-secure.middlewares=myauth@file
    - traefik.http.routers.cup.rule=Host(`${CUP_SERVER}`)

Como podéis ver, en mi caso, uso traefik por eso tengo las respectivas etiquetas. Pero funciona de la misma manera sin estas etiquetas, pero si es así, tienes que añadir el puerto que quieres usar:

cup:
  ports:
    - 8000:8000

Con esto tendrás una página web, a la que accederás desde el puerto que tú indiques y verás los servicios que están disponibles junto con los que tienen disponible la actualización.

A parte de tener este servicio, sé que podría usar diun, volver a whatsup o watchtower, también me he hecho un script en bash para actualizar los servicios más fácilmente, lo hago yo manualmente, pero me resulta más cómodo de esta manera, pero para simplificar las instrucciones necesarias.

El script tiene lo siguiente:

   #!/bin/bash

   for param in "$@"; do
     docker compose pull $param && docker compose up -d $param && docker image prune
   done

Se usa de la siguiente manera:

usuari@debian:~$ sh update_docker.sh docker_1 docker_2 ...

Con esto ya he finalizado este artículo rápido y fácil. Que a veces son los más difíciles de hacer.

◇ Referencia