Go to file
mag37 7630a95442
Merge pull request #29 from Palleri/patch-2
Added visual "new line" after update check.
2023-02-26 11:58:09 +01:00
dc_brief.sh Added visual "new line" after update check. 2023-02-26 11:24:46 +01:00
dockcheck.sh Added exclude-option 2023-02-26 07:49:57 +01:00
example.gif new example 2023-02-16 13:51:22 +01:00
LICENSE Create LICENSE 2023-02-15 13:18:51 +01:00
README.md known: profile and multicompose 2023-02-25 07:56:58 +01:00

dockcheck

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


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 ng

Options:
-h     Print this Help.
-a|y   Automatic updates, without interaction.
-n     No updates, only checking availability.
-p     Auto-Prune dangling images after update.
-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

🔨 Known issues

  • No detailed error feedback (just skip + list what's skipped) .
  • Not respecting --profile options when re-creating the container.
  • Not respecting multi-compose projects using multiple -f like ...override.yml or similar.

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: