dockcheck/README.md
mag37 f6e2d50949
+Recent Changes
Added a "Recent Changes" - section up top to make it easier to see what's new with versions.
2023-02-26 23:11:40 +01:00

3.9 KiB

dockcheck

A script checking updates for docker images without pulling - then selectively auto-update some/all containers.

📌 Recent changes:

  • v0.2.1: Added option to exclude a list of containers.
  • v0.2.1: Added multi-compose support (eg. override).
  • v0.2.0: Fixed error with container:tag definition.
  • v0.1.9: Fixed custom env-support.
  • v0.1.8: Added option to prune dangling images.

Dependencies:

Running docker (duh) and compose, either standalone or plugin.
regclient/regctl (Licensed under Apache-2.0 License)
User will be prompted to download regctl if not in PATH or PWD


dockcheck.sh

$ ./dockcheck.sh -h
Syntax:     dockcheck.sh [OPTION] [part of name to filter]
Example:    dockcheck.sh -a -e nextcloud,heimdall

Options:
-h     Print this Help.
-a|y   Automatic updates, without interaction.
-n     No updates, only checking availability.
-p     Auto-Prune dangling images after update.
-e     Exclude containers, separated by comma.
-r     Allow updating images for docker run, wont update the container.

Basic example:

$ ./dockcheck.sh
. . .
Containers on latest version:
glances
homer

Containers with updates available:
1) adguardhome
2) syncthing
3) whoogle-search


Choose what containers to update:
Enter number(s) separated by comma, [a] for all - [q] to quit:

Then it proceedes to run pull and up -d on every container with updates.
After the updates are complete, you'll get prompted if you'd like to prune dangling images.

-r flag ⚠️ disclaimer and warning:

Wont auto-update the containers, only their images. (compose is recommended)
docker run dont support using new images just by restarting a container.
Containers need to be manually stopped, removed and created again to run on the new image.

🪲 Squashed Bugs:

  • No options for running without updates or auto update.
  • No filter to check only specific containers.
  • Faulty registry checkups stopped the updates completely.
  • No clear checks to skip containers producing errors.
  • Multi-digest images didn't correctly check with registry, giving false positives on updates.
  • Not working with filenames other than docker-compose.yml
  • Lists are not alphabetically sorted (due to stacks and other parameters)
  • Old docker-compose binary-check sometimes returned false error
  • Stacks gets updated as whole, even if only one service is chosen.
  • Path broken occationally (from inspect) - probably due to old docker-compose binary.
  • Script breaks if one of the chosen containers are a docker run container.
  • Using relative paths for volumes eg. ${PWD}/data:data will create the volumes where you stand.
  • Having no curl/wget leads to corrupt regctl without alerting.
  • Using custom .env files does not work.
  • Pull not respecting image:tags, always defaulting to latest
  • Not respecting multi-compose projects using multiple -f like ...override.yml or similar.
  • Not being able to exclude specific containers.

🔨 Known issues

  • No detailed error feedback (just skip + list what's skipped) .
  • Not respecting --profile options when re-creating the container.

dc_brief.sh

Just a brief, slimmed down version of the script to only print what containers got updates, no updates or errors.

License

dockcheck is created and released under the GNU GPL v3.0 license.


Check out a spinoff brother-project:

Palleri/dockcheck-web for a WebUI-front!

Special Thanks: