A script checking updates for docker images without pulling - then selectively auto-update some/all containers.
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 -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.
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.
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 thandocker-compose.yml
Lists are not alphabetically sorted (due to stacks and other parameters)Olddocker-compose
binary-check sometimes returned false errorStacks 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 adocker run
container.Using relative paths for volumes eg.${PWD}/data:data
will create the volumes where you stand.Having no curl/wget leads to corruptregctl
without alerting.Using custom.env
files does not work.Pull not respecting image:tags, always defaulting to latest
- 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.
Just a brief, slimmed down version of the script to only print what containers got updates, no updates or errors.
dockcheck is created and released under the GNU GPL v3.0 license.