Compare commits

..

1 Commits

Author SHA1 Message Date
mag37
b0e92c9aab Moving the label logic to earlier in the process - at check level 2025-10-01 19:45:06 +02:00
2 changed files with 23 additions and 23 deletions

View File

@@ -22,15 +22,6 @@
___
## Changelog
- **v0.7.2**:
- Label rework:
- Moved up label logic to work globally on the current run.
- Only iterating on labeled containers when used with `-l` option, not listing others.
- Clarified messaging and readme/help texts.
- List reformatting for "available updates" numbering to easier highlight and copy:
- Padded with zero, changed `)` to `-`, example: `02 - homer`
- Can be selected by writing `2,3,4` or `02,03,04`.
- **v0.7.1**:
- Added support for multiple notifications using the same template
- Added support for notification output format
@@ -45,6 +36,18 @@ ___
- Bugfix: snooze dockcheck.sh-self-notification and some config clarification.
- Added authentication support to Ntfy.sh.
- Added suport for sendmail in the SMTP-template.
- **v0.6.9**:
- Bugfix: label logic didn't skip recreation (skipped pulling).
- Added comma separated search filtering so you can selectively search exactly which containers to check/update.
- eg: `dockcheck.sh -yp homer,dozzle`
- **v0.6.8**:
- Bugfix: Unbound variable in notify_v2.sh
- New option: "DisplaySourcedFiles" *config* added to list what files get sourced
- **v0.6.7**: Snooze feature, curl, and consolidation
- Added snooze feature to delay notifications
- Added configurable default curl arguments
- Consolidated and standardized notify template update notifications
- Added curl error handling
___
@@ -66,7 +69,7 @@ Options:
-h Print this Help.
-i Inform - send a preconfigured notification.
-I Prints custom releasenote urls alongside each container with updates in CLI output (requires urls.list).
-l Only include containers with label set. See readme.
-l Only update if label is set. See readme.
-m Monochrome mode, no printf colour codes and hides progress bar.
-M Prints custom releasenote urls as markdown (requires template support).
-n No updates, only checking availability.
@@ -280,12 +283,10 @@ Optionally add labels to compose-files. Currently these are the usable labels:
mag37.dockcheck.only-specific-container: true
mag37.dockcheck.restart-stack: true
```
- `mag37.dockcheck.update: true` will when used with the `-l` option only check and update containers with this label set and skip the rest.
- `mag37.dockcheck.update: true` will when used with the `-l` option only update containers with this label and skip the rest. Will still list updates as usual.
- `mag37.dockcheck.only-specific-container: true` works instead of the `-F` option, specifying the updated container when doing compose up, like `docker compose up -d homer`.
- `mag37.dockcheck.restart-stack: true` works instead of the `-f` option, forcing stop+restart on the whole compose-stack (Caution: Will restart on every updated container within stack).
Adding or modifying labels in compose-files requires a restart of the container to take effect.
## Workaround for non **amd64** / **arm64**
`regctl` provides binaries for amd64/arm64, to use on other architecture you could try this workaround.
Run regctl in a container wrapped in a shell script. Copied from [regclient/docs/install.md](https://github.com/regclient/regclient/blob/main/docs/install.md):

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
VERSION="v0.7.2"
# ChangeNotes: Reformatted updates list, rewrote label logic to work globally when used with `-l`.
VERSION="v0.7.1"
# ChangeNotes: Add support for multiple notifications of the same type, output formatting, and file output
Github="https://github.com/mag37/dockcheck"
RawUrl="https://raw.githubusercontent.com/mag37/dockcheck/main/dockcheck.sh"
@@ -42,7 +42,7 @@ Help() {
echo "-h Print this Help."
echo "-i Inform - send a preconfigured notification."
echo "-I Prints custom releasenote urls alongside each container with updates in CLI output (requires urls.list)."
echo "-l Only include containers with label set. See readme."
echo "-l Only update if label is set. See readme."
echo "-m Monochrome mode, no printf colour codes and hides progress bar."
echo "-M Prints custom releasenote urls as markdown (requires template support)."
echo "-n No updates; only checking availability without interaction."
@@ -342,13 +342,12 @@ dependency_check() {
dependency_check "regctl" "regbin" "https://github.com/regclient/regclient/releases/latest/download/regctl-linux-TEMP"
dependency_check "jq" "jqbin" "https://github.com/jqlang/jq/releases/latest/download/jq-linux-TEMP"
# Numbered List function - pads with zero
# Numbered List function
# if urls.list exists add release note url per line
list_options() {
local total="${#Updates[@]}"
[[ ${#total} < 2 ]] && local pads=2 || local pads="${#total}"
local num=1
num=1
for update in "${Updates[@]}"; do
printf "%0*d - %s\n" $pads $num $update
echo "$num) $update"
((num++))
done
}
@@ -483,7 +482,7 @@ done < <( \
xargs $XargsAsync -I {} bash -c 'check_image "{}"' \
)
[[ "$OnlyLabel" == true ]] && printf "\n%bLabel option active:%b Only checking containers with labels set.\n" "$c_blue" "$c_reset"
[[ "$OnlyLabel" == true ]] && printf "\n%bLabel option set:%b Only checking containers with labels set.\n" "$c_blue" "$c_reset"
# Sort arrays alphabetically
IFS=$'\n'
@@ -601,7 +600,7 @@ if [[ -n "${GotUpdates:-}" ]]; then
${DockerBin} ${CompleteConfs} ${ContEnvs} up -d ${SpecificContainer} || { printf "\n%bDocker error, exiting!%b\n" "$c_red" "$c_reset" ; exit 1; }
fi
done
if [[ "$AutoPrune" == false ]] && [[ "$AutoMode" == false ]]; then printf "\n"; read -rep "Would you like to prune all dangling images? y/[n]: " AutoPrune; fi
if [[ "$AutoPrune" == false ]] && [[ "$AutoMode" == false ]]; then printf "\n"; read -rep "Would you like to prune dangling images? y/[n]: " AutoPrune; fi
if [[ "$AutoPrune" == true ]] || [[ "$AutoPrune" =~ [yY] ]]; then printf "\nAuto pruning.."; docker image prune -f; fi
printf "\n%bAll done!%b\n" "$c_green" "$c_reset"
else