Comprueba las actualizaciones de tus imágenes docker con cup
2024-10-14
Cup permite comprobar, de una manera fácil y sencilla, si las imágenes de tus contenedores Docker tienen actualizaciones disponibles, además de exigir pocos recursos a tu máquina. El proyecto está inspirado en What’s up Docker?
Características
- Es muy rápido. Aprovecha al máximo tu CPU y está altamente optimizada
- Soporta Docker Hub, ghcr.io, Quay, lscr.io e incluso Gitea (o derivados)
- CLI e interfaz web para comprobar los contenedores en cualquier momento.
- Puedes utilizar una imagen Docker o un pequeño binario para su ejecución, en el momento de escribir este artículo, es de solo 4.7 MB.
- Dispone de salida JSON, tanto para la interfaz CLI como web, para que puedas conectar Cup con otras integraciones.
Limitaciones
Cup no puede desencadenar tus integraciones. Si quieres que eso suceda automáticamente, puedes utilizar What’s up Docker?. Cup fue creada para ser simple. Los datos están ahí, y depende de ti para recuperarlos (por ejemplo, ejecutando cup -r
con un cronjob o solicitando periódicamente la url /json
url del servidor)
Instalación
Podemos ejecutar Cup mediante un fichero binario o mediante Docker
Binario
Descarga la última versión para tu plataforma desde https://github.com/sergi0g/cup/releases/latest
Docker
Abre una terminal y ejecuta el siguiente comando.
docker pull ghcr.io/sergi0g/cup
Docker compose
Si prefieres utilizar docker compose, este es su fichero yml
services:
cup:
image: ghcr.io/sergi0g/cup:latest # you can use another tag if you like
restart: unless-stopped
command: serve
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "8002:8000"
Utilización
CLI
Las opciones disponibles para su ejecución desde la terminal
cups -h
Usage: cup [OPTIONS] [COMMAND]
Commands:
check
serve
help Print this message or the help of the given subcommand(s)
Options:
-s, --socket <SOCKET>
-h, --help Print help
-V, --version Print version
Para comprobar si existen actualizaciones para todas las imágenes
-
Binario:
./cup check -i
✓ Done! ghcr.io/sergi0g/cup:latest Up to date ghcr.io/medama-io/medama:latest Up to date qmcgaw/ddns-updater:latest Up to date portainer/portainer-ce:latest Up to date ghcr.io/umami-software/umami:postgresql-latest Up to date dpage/pgadmin4:latest Up to date jc21/nginx-proxy-manager:latest Up to date tensorchord/pgvecto-rs:pg16-v0.2.0 Up to date
-
Docker
docker run -v /var/run/docker.sock:/var/run/docker.sock -t ghcr.io/sergi0g/cup check -i
✓ Done! dpage/pgadmin4:latest Up to date ghcr.io/medama-io/medama:latest Up to date ghcr.io/sergi0g/cup:latest Up to date ghcr.io/umami-software/umami:postgresql-latest Up to date jc21/nginx-proxy-manager:latest Up to date portainer/portainer-ce:latest Up to date qmcgaw/ddns-updater:latest Up to date tensorchord/pgvecto-rs:pg16-v0.2.0 Up to date
Comprobar las actualizaciones de una imagen específica, por ejemplo medama
-
Binario
./cup check ghcr.io/medama-io/medama:latest
ghcr.io/medama-io/medama:latest is up to date
-
Docker
docker run -v /var/run/docker.sock:/var/run/docker.sock -t ghcr.io/sergi0g/cup check ghcr.io/medama-io/medama:latest
ghcr.io/medama-io/medama:latest is up to date
Server
Cup dispone de una webgui a través de su servidor
-
Binario
./cup serve
2024-07-22T11:25:08.343786Z INFO xitca_server::net: Started Tcp listening on: Some(0.0.0.0:8000) 2024-07-22T11:25:08.344124Z WARN xitca_server::server::future: ServerFuture::wait is called from within tokio context. It would block current thread from handling async tasks. 2024-07-22T11:25:08.344839Z INFO xitca_server::worker: Started xitca-server-worker-0 2024-07-22T11:25:08.345173Z INFO xitca_server::worker: Started xitca-server-worker-1 2024-07-22T11:25:08.345501Z INFO xitca_server::worker: Started xitca-server-worker-2 2024-07-22T11:25:08.345709Z INFO xitca_server::worker: Started xitca-server-worker-3
-
Docker
docker run -v /var/run/docker.sock:/var/run/docker.sock -p 8000:8000 -t ghcr.io/sergi0g/cup serve
2024-07-22T11:08:49.712071Z INFO xitca_server::net: Started Tcp listening on: Some(0.0.0.0:8000) 2024-07-22T11:08:49.713392Z WARN xitca_server::server::future: ServerFuture::wait is called from within tokio context. It would block current thread from handling async tasks. 2024-07-22T11:08:49.715206Z INFO xitca_server::worker: Started xitca-server-worker-0 2024-07-22T11:08:49.715813Z INFO xitca_server::worker: Started xitca-server-worker-1 2024-07-22T11:08:49.716527Z INFO xitca_server::worker: Started xitca-server-worker-2 2024-07-22T11:08:49.716762Z INFO xitca_server::worker: Started xitca-server-worker-3
Esto lanzará el servidor en el puerto 8000. Para acceder a la web-ui, desde el navegador introducimos http://-tu-ip.:8000 (cambia TU IP con la dirección IP de la máquina donde se ejecuta Cup.)
Podemos utilizar un puerto diferente al 8000, por defecto, por ejemplo el 8002, utilizando el parámetro -p
-
Binario:
./cup serve -p 8002
Serving on http://0.0.0.0:8002 2024-07-22T11:25:08.343786Z INFO xitca_server::net: Started Tcp listening on: Some(0.0.0.0:8002) 2024-07-22T11:25:08.344124Z WARN xitca_server::server::future: ServerFuture::wait is called from within tokio context. It would block current thread from handling async tasks. 2024-07-22T11:25:08.344839Z INFO xitca_server::worker: Started xitca-server-worker-0 2024-07-22T11:25:08.345173Z INFO xitca_server::worker: Started xitca-server-worker-1 2024-07-22T11:25:08.345501Z INFO xitca_server::worker: Started xitca-server-worker-2 2024-07-22T11:25:08.345709Z INFO xitca_server::worker: Started xitca-server-worker-3 2024-07-22T11:25:26.737650Z INFO request{method=GET uri=/}: on_request: serving request 2024-07-22T11:25:26.761967Z INFO request{method=GET uri=/}: on_response: sending response
Si utilizas Docker solamente cambia
-p PUERTO:PUERTO
- Docker:
docker run -v /var/run/docker.sock:/var/run/docker.sock -p 8002:8000 -t ghcr.io/sergi0g/cup serve
2024-07-22T11:30:07.468720Z INFO xitca_server::net: Started Tcp listening on: Some(0.0.0.0:8000) 2024-07-22T11:30:07.469122Z WARN xitca_server::server::future: ServerFuture::wait is called from within tokio context. It would block current thread from handling async tasks. 2024-07-22T11:30:07.470193Z INFO xitca_server::worker: Started xitca-server-worker-0 2024-07-22T11:30:07.471450Z INFO xitca_server::worker: Started xitca-server-worker-2 2024-07-22T11:30:07.471450Z INFO xitca_server::worker: Started xitca-server-worker-1 2024-07-22T11:30:07.472043Z INFO xitca_server::worker: Started xitca-server-worker-3
Espero que te haya gustado, pasa un gran día 🐧