Discord notifications changed format
Describe the bug
Previously I would get notifications from watchtower including the number of updates, fails and everything in one block but now I just get the containers and even a second block with two repeated lines.
Is there something wrong on my end? I didn't change any configuration.
Steps to reproduce
Run this:
version: "3.8"
services:
watchtowertest:
image: containrrr/watchtower:latest
container_name: watchtowertest
environment:
TZ: "Europe/Berlin"
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_INCLUDE_STOPPED: "true"
WATCHTOWER_NOTIFICATION_REPORT: "true"
WATCHTOWER_DEBUG: "true"
WATCHTOWER_RUN_ONCE: "true"
WATCHTOWER_NOTIFICATION_URL: "discord://...@..."
WATCHTOWER_NOTIFICATION_TEMPLATE: |
{{- if .Report -}}
{{- with .Report -}}
{{len .Scanned}} Scanned, {{len .Updated}} Updated, {{len .Failed}} Failed
{{- range .Updated}}
- {{.Name}} ({{.ImageName}}): {{.CurrentImageID.ShortID}} updated to {{.LatestImageID.ShortID}}
{{- end -}}
{{- range .Fresh}}
- {{.Name}} ({{.ImageName}}): {{.State}}
{{- end -}}
{{- range .Skipped}}
- {{.Name}} ({{.ImageName}}): {{.State}}: {{.Error}}
{{- end -}}
{{- range .Failed}}
- {{.Name}} ({{.ImageName}}): {{.State}}: {{.Error}}
{{- end -}}
{{- end -}}
{{- else -}}
{{range .Entries -}}{{.Message}}{{"\n"}}{{- end -}}
{{- end -}}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Expected behavior
The old behavior with the report.
Screenshots
Before:
After:
Environment
- Platform: Ubuntu 22.04.3 LTS
- Architecture: x86_64
- Docker Version: 25.0.2, build 29cf629
Your logs
time="2024-02-09T15:49:20+01:00" level=debug msg="Got image name: postgres:latest"
time="2024-02-09T15:49:20+01:00" level=debug msg="Checking if pull is needed" container=/postgres image="postgres:latest"
time="2024-02-09T15:49:20+01:00" level=debug msg="Built challenge URL" URL="https://index.docker.io/v2/"
time="2024-02-09T15:49:20+01:00" level=debug msg="Got response to challenge request" header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized"
time="2024-02-09T15:49:20+01:00" level=debug msg="Checking challenge header content" realm="https://auth.docker.io/token" service=registry.docker.io
time="2024-02-09T15:49:20+01:00" level=debug msg="Setting scope for auth token" image=docker.io/library/postgres scope="repository:library/postgres:pull"
time="2024-02-09T15:49:20+01:00" level=debug msg="No credentials found."
time="2024-02-09T15:49:20+01:00" level=debug msg="Parsing image ref" host=index.docker.io image=library/postgres normalized=docker.io/library/postgres tag=latest
time="2024-02-09T15:49:20+01:00" level=debug msg="Doing a HEAD request to fetch a digest" url="https://index.docker.io/v2/library/postgres/manifests/latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="Found a remote digest to compare with" remote="sha256:09f23e02d76670d3b346a3c00aa33a27cf57aab8341eedfcdaed41459d14f5c4"
time="2024-02-09T15:49:21+01:00" level=debug msg=Comparing local="sha256:09f23e02d76670d3b346a3c00aa33a27cf57aab8341eedfcdaed41459d14f5c4" remote="sha256:09f23e02d76670d3b346a3c00aa33a27cf57aab8341eedfcdaed41459d14f5c4"
time="2024-02-09T15:49:21+01:00" level=debug msg="Found a match"
time="2024-02-09T15:49:21+01:00" level=debug msg="No pull needed. Skipping image."
time="2024-02-09T15:49:21+01:00" level=debug msg="No new images found for /postgres"
time="2024-02-09T15:49:21+01:00" level=debug msg="Trying to load authentication credentials." container=/nginx image="nginx:latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="No credentials for index.docker.io found" config_file=/config.json
time="2024-02-09T15:49:21+01:00" level=debug msg="Got image name: nginx:latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="Checking if pull is needed" container=/nginx image="nginx:latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="Built challenge URL" URL="https://index.docker.io/v2/"
time="2024-02-09T15:49:21+01:00" level=debug msg="Got response to challenge request" header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized"
time="2024-02-09T15:49:21+01:00" level=debug msg="Checking challenge header content" realm="https://auth.docker.io/token" service=registry.docker.io
time="2024-02-09T15:49:21+01:00" level=debug msg="Setting scope for auth token" image=docker.io/library/nginx scope="repository:library/nginx:pull"
time="2024-02-09T15:49:21+01:00" level=debug msg="No credentials found."
time="2024-02-09T15:49:21+01:00" level=debug msg="Parsing image ref" host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=latest
time="2024-02-09T15:49:21+01:00" level=debug msg="Doing a HEAD request to fetch a digest" url="https://index.docker.io/v2/library/nginx/manifests/latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="Found a remote digest to compare with" remote="sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f"
time="2024-02-09T15:49:21+01:00" level=debug msg=Comparing local="sha256:5f44022eab9198d75939d9eaa5341bc077eca16fa51d4ef32d33f1bd4c8cbe7d" remote="sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f"
time="2024-02-09T15:49:21+01:00" level=debug msg=Comparing local="sha256:6eb953446a36ad7aaa1624ff7b0fba5c8f8742e13fbef572cda3cac202fcf4aa" remote="sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f"
time="2024-02-09T15:49:21+01:00" level=debug msg=Comparing local="sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f" remote="sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f"
time="2024-02-09T15:49:21+01:00" level=debug msg="Found a match"
time="2024-02-09T15:49:21+01:00" level=debug msg="No pull needed. Skipping image."
time="2024-02-09T15:49:21+01:00" level=debug msg="No new images found for /nginx"
time="2024-02-09T15:49:21+01:00" level=debug msg="Trying to load authentication credentials." container=/gitea image="gitea/gitea:latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="No credentials for index.docker.io found" config_file=/config.json
time="2024-02-09T15:49:21+01:00" level=debug msg="Got image name: gitea/gitea:latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="Checking if pull is needed" container=/gitea image="gitea/gitea:latest"
time="2024-02-09T15:49:21+01:00" level=debug msg="Built challenge URL" URL="https://index.docker.io/v2/"
time="2024-02-09T15:49:22+01:00" level=debug msg="Got response to challenge request" header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized"
time="2024-02-09T15:49:22+01:00" level=debug msg="Checking challenge header content" realm="https://auth.docker.io/token" service=registry.docker.io
time="2024-02-09T15:49:22+01:00" level=debug msg="Setting scope for auth token" image=docker.io/gitea/gitea scope="repository:gitea/gitea:pull"
time="2024-02-09T15:49:22+01:00" level=debug msg="No credentials found."
time="2024-02-09T15:49:22+01:00" level=debug msg="Parsing image ref" host=index.docker.io image=gitea/gitea normalized=docker.io/gitea/gitea tag=latest
time="2024-02-09T15:49:22+01:00" level=debug msg="Doing a HEAD request to fetch a digest" url="https://index.docker.io/v2/gitea/gitea/manifests/latest"
time="2024-02-09T15:49:22+01:00" level=debug msg="Found a remote digest to compare with" remote="sha256:a2095ce71c414c0c6a79192f3933e668a595f7fa7706324edd0aa25c8728f00f"
time="2024-02-09T15:49:22+01:00" level=debug msg=Comparing local="sha256:a2095ce71c414c0c6a79192f3933e668a595f7fa7706324edd0aa25c8728f00f" remote="sha256:a2095ce71c414c0c6a79192f3933e668a595f7fa7706324edd0aa25c8728f00f"
time="2024-02-09T15:49:22+01:00" level=debug msg="Found a match"
time="2024-02-09T15:49:22+01:00" level=debug msg="No pull needed. Skipping image."
time="2024-02-09T15:49:22+01:00" level=debug msg="No new images found for /gitea"
time="2024-02-09T15:49:22+01:00" level=debug msg="Trying to load authentication credentials." container=/uptime-kuma image="louislam/uptime-kuma:latest"
time="2024-02-09T15:49:22+01:00" level=debug msg="No credentials for index.docker.io found" config_file=/config.json
time="2024-02-09T15:49:22+01:00" level=debug msg="Got image name: louislam/uptime-kuma:latest"
time="2024-02-09T15:49:22+01:00" level=debug msg="Checking if pull is needed" container=/uptime-kuma image="louislam/uptime-kuma:latest"
time="2024-02-09T15:49:22+01:00" level=debug msg="Built challenge URL" URL="https://index.docker.io/v2/"
time="2024-02-09T15:49:22+01:00" level=debug msg="Got response to challenge request" header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized"
time="2024-02-09T15:49:22+01:00" level=debug msg="Checking challenge header content" realm="https://auth.docker.io/token" service=registry.docker.io
time="2024-02-09T15:49:22+01:00" level=debug msg="Setting scope for auth token" image=docker.io/louislam/uptime-kuma scope="repository:louislam/uptime-kuma:pull"
time="2024-02-09T15:49:22+01:00" level=debug msg="No credentials found."
time="2024-02-09T15:49:22+01:00" level=debug msg="Parsing image ref" host=index.docker.io image=louislam/uptime-kuma normalized=docker.io/louislam/uptime-kuma tag=latest
time="2024-02-09T15:49:22+01:00" level=debug msg="Doing a HEAD request to fetch a digest" url="https://index.docker.io/v2/louislam/uptime-kuma/manifests/latest"
time="2024-02-09T15:49:23+01:00" level=debug msg="Found a remote digest to compare with" remote="sha256:c326fd83d8da2d8fff3feb0e47433546139513bd823d9accc12977176b05b31f"
time="2024-02-09T15:49:23+01:00" level=debug msg=Comparing local="sha256:c326fd83d8da2d8fff3feb0e47433546139513bd823d9accc12977176b05b31f" remote="sha256:c326fd83d8da2d8fff3feb0e47433546139513bd823d9accc12977176b05b31f"
time="2024-02-09T15:49:23+01:00" level=debug msg="Found a match"
time="2024-02-09T15:49:23+01:00" level=debug msg="No pull needed. Skipping image."
time="2024-02-09T15:49:23+01:00" level=debug msg="No new images found for /uptime-kuma"
time="2024-02-09T15:49:23+01:00" level=debug msg="Trying to load authentication credentials." container=/gitea-runner image="gitea/act_runner:latest"
time="2024-02-09T15:49:23+01:00" level=debug msg="No credentials for index.docker.io found" config_file=/config.json
time="2024-02-09T15:49:23+01:00" level=debug msg="Got image name: gitea/act_runner:latest"
time="2024-02-09T15:49:23+01:00" level=debug msg="Checking if pull is needed" container=/gitea-runner image="gitea/act_runner:latest"
time="2024-02-09T15:49:23+01:00" level=debug msg="Built challenge URL" URL="https://index.docker.io/v2/"
time="2024-02-09T15:49:23+01:00" level=debug msg="Got response to challenge request" header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized"
time="2024-02-09T15:49:23+01:00" level=debug msg="Checking challenge header content" realm="https://auth.docker.io/token" service=registry.docker.io
time="2024-02-09T15:49:23+01:00" level=debug msg="Setting scope for auth token" image=docker.io/gitea/act_runner scope="repository:gitea/act_runner:pull"
time="2024-02-09T15:49:23+01:00" level=debug msg="No credentials found."
time="2024-02-09T15:49:23+01:00" level=debug msg="Parsing image ref" host=index.docker.io image=gitea/act_runner normalized=docker.io/gitea/act_runner tag=latest
time="2024-02-09T15:49:23+01:00" level=debug msg="Doing a HEAD request to fetch a digest" url="https://index.docker.io/v2/gitea/act_runner/manifests/latest"
time="2024-02-09T15:49:24+01:00" level=debug msg="Found a remote digest to compare with" remote="sha256:3f5b708370d47144bc9887c536486dd1d954af16effc160596c46e3daae41298"
time="2024-02-09T15:49:24+01:00" level=debug msg=Comparing local="sha256:3f5b708370d47144bc9887c536486dd1d954af16effc160596c46e3daae41298" remote="sha256:3f5b708370d47144bc9887c536486dd1d954af16effc160596c46e3daae41298"
time="2024-02-09T15:49:24+01:00" level=debug msg="Found a match"
time="2024-02-09T15:49:24+01:00" level=debug msg="No pull needed. Skipping image."
time="2024-02-09T15:49:24+01:00" level=debug msg="No new images found for /gitea-runner"
time="2024-02-09T15:49:24+01:00" level=debug msg="Trying to load authentication credentials." container=/portainer image="portainer/portainer-ce:latest"
time="2024-02-09T15:49:24+01:00" level=debug msg="No credentials for index.docker.io found" config_file=/config.json
time="2024-02-09T15:49:24+01:00" level=debug msg="Got image name: portainer/portainer-ce:latest"
time="2024-02-09T15:49:24+01:00" level=debug msg="Checking if pull is needed" container=/portainer image="portainer/portainer-ce:latest"
time="2024-02-09T15:49:24+01:00" level=debug msg="Built challenge URL" URL="https://index.docker.io/v2/"
time="2024-02-09T15:49:24+01:00" level=debug msg="Got response to challenge request" header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized"
time="2024-02-09T15:49:24+01:00" level=debug msg="Checking challenge header content" realm="https://auth.docker.io/token" service=registry.docker.io
time="2024-02-09T15:49:24+01:00" level=debug msg="Setting scope for auth token" image=docker.io/portainer/portainer-ce scope="repository:portainer/portainer-ce:pull"
time="2024-02-09T15:49:24+01:00" level=debug msg="No credentials found."
time="2024-02-09T15:49:24+01:00" level=debug msg="Parsing image ref" host=index.docker.io image=portainer/portainer-ce normalized=docker.io/portainer/portainer-ce tag=latest
time="2024-02-09T15:49:24+01:00" level=debug msg="Doing a HEAD request to fetch a digest" url="https://index.docker.io/v2/portainer/portainer-ce/manifests/latest"
time="2024-02-09T15:49:24+01:00" level=debug msg="Found a remote digest to compare with" remote="sha256:908d04d20e86f07a50b0f1a029a111b89aa3089b7fc7fdf68ec1c71b025f36cd"
time="2024-02-09T15:49:24+01:00" level=debug msg=Comparing local="sha256:908d04d20e86f07a50b0f1a029a111b89aa3089b7fc7fdf68ec1c71b025f36cd" remote="sha256:908d04d20e86f07a50b0f1a029a111b89aa3089b7fc7fdf68ec1c71b025f36cd"
time="2024-02-09T15:49:24+01:00" level=debug msg="Found a match"
time="2024-02-09T15:49:24+01:00" level=debug msg="No pull needed. Skipping image."
time="2024-02-09T15:49:24+01:00" level=debug msg="No new images found for /portainer"
time="2024-02-09T15:49:24+01:00" level=debug msg="This is the watchtower container /watchtower"
time="2024-02-09T15:49:24+01:00" level=info msg="Session done" Failed=0 Scanned=11 Updated=0 notify=no
time="2024-02-09T15:49:24+01:00" level=info msg="Waiting for the notification goroutine to finish" notify=no
Additional context
In the logfile notify is set to no but I have the WATCHTOWER_NOTIFICATION_REPORT set to true. Maybe it has something to do with it
Hi there! 👋🏼 As you're new to this repo, we'd like to suggest that you read our code of conduct as well as our contribution guidelines. Thanks a bunch for opening your first issue! 🙏
This only happens when there are more than 9 containers, seems like it's okay for now