containrrr / watchtower

A process for automating Docker container base image updates.
https://containrrr.dev/watchtower/
Apache License 2.0
19.4k stars 855 forks source link

Missing container name in status notification #1789

Open thelfensdrfer opened 1 year ago

thelfensdrfer commented 1 year ago

Describe the bug

Watchtower cannot update two of my containers, which is absolutely not watchtowers fault. This issue is not about the error itself but the formatting of the log and the lack of additional information (e.g. the container names).

The complete email (with notification level set to "debug") says:

command exited with code 126  OCI runtime exec failed: exec failed: unable to start container process: error loading seccomp filter into kernel: error loading seccomp filter: errno 524: unknown
command exited with code 126  OCI runtime exec failed: exec failed: unable to start container process: error loading seccomp filter into kernel: error loading seccomp filter: errno 524: unknown

The complete config:

services:
    watchtower:
        image: containrrr/watchtower:latest
        restart: unless-stopped
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        environment:
            WATCHTOWER_NOTIFICATIONS: email
            WATCHTOWER_NOTIFICATIONS_LEVEL: debug
            WATCHTOWER_NOTIFICATION_EMAIL_FROM: ****
            WATCHTOWER_NOTIFICATION_EMAIL_TO: ****
            WATCHTOWER_NOTIFICATION_EMAIL_SERVER: ****
            WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: ****
            WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: "****"
            WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG: "****"
            WATCHTOWER_LIFECYCLE_HOOKS: "true"
            WATCHTOWER_HTTP_API_METRICS: "true"
            WATCHTOWER_HTTP_API_TOKEN: "****"
            WATCHTOWER_SCHEDULE: "0 0 * * * *"
            WATCHTOWER_CLEANUP: "true"
            WATCHTOWER_TIMEOUT: "30s"
            VIRTUAL_HOST: ****
            VIRTUAL_PORT: 8080
            LETSENCRYPT_HOST: ****
            LETSENCRYPT_EMAIL: ****

The watcher docker log repeats every hour:

watchtower_1  | time="2023-10-05T09:00:34Z" level=info msg="Session done" Failed=0 Scanned=29 Updated=0 notify=no

Steps to reproduce

/

Expected behavior

Add the names to the notifications, e.g.:

container_bla_1:
command exited with code 126  OCI runtime exec failed: exec failed: unable to start container process: error loading seccomp filter into kernel: error loading seccomp filter: errno 524: unknown

container_blu_2:
command exited with code 126  OCI runtime exec failed: exec failed: unable to start container process: error loading seccomp filter into kernel: error loading seccomp filter: errno 524: unknown

Screenshots

No response

Environment

LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: Rocky
Description:    Rocky Linux release 8.8 (Green Obsidian)

64 bit
Docker version 24.0.6, build ed223bc
### Your logs ```text DEBU[0000] Sleeping for a second to ensure the docker api client has been properly initialized. DEBU[0001] Making sure everything is sane before starting INFO[0001] Watchtower 1.6.0 INFO[0001] Using no notifications INFO[0001] Checking all containers (except explicitly disabled with label) INFO[0001] Running a one time update. DEBU[0001] Checking containers for updated images DEBU[0001] Retrieving running containers DEBU[0001] Trying to load authentication credentials. container=/watchtower-watchtower-run-96c73d698c70 image="containrrr/watchtower:latest" DEBU[0001] No credentials for index.docker.io found config_file=/config.json DEBU[0001] Got image name: containrrr/watchtower:latest DEBU[0001] Checking if pull is needed container=/watchtower-watchtower-run-96c73d698c70 image="containrrr/watchtower:latest" DEBU[0001] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0001] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0001] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0001] Setting scope for auth token image=docker.io/containrrr/watchtower scope="repository:containrrr/watchtower:pull" DEBU[0001] No credentials found. DEBU[0001] Parsing image ref host=index.docker.io image=containrrr/watchtower normalized=docker.io/containrrr/watchtower tag=latest DEBU[0001] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/containrrr/watchtower/manifests/latest" DEBU[0002] Found a remote digest to compare with remote="sha256:0fa12e1998691a9c2aba7a16325888125ca2c1b8c4e4277890ffc734150d0ab6" DEBU[0002] Comparing local="sha256:0fa12e1998691a9c2aba7a16325888125ca2c1b8c4e4277890ffc734150d0ab6" remote="sha256:0fa12e1998691a9c2aba7a16325888125ca2c1b8c4e4277890ffc734150d0ab6" DEBU[0002] Found a match DEBU[0002] No pull needed. Skipping image. DEBU[0002] No new images found for /watchtower-watchtower-run-96c73d698c70 DEBU[0002] Trying to load authentication credentials. container=/aow-mysql-1 image="mysql:5.7" DEBU[0002] No credentials for index.docker.io found config_file=/config.json DEBU[0002] Got image name: mysql:5.7 DEBU[0002] Checking if pull is needed container=/aow-mysql-1 image="mysql:5.7" DEBU[0002] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0002] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0002] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0002] Setting scope for auth token image=docker.io/library/mysql scope="repository:library/mysql:pull" DEBU[0002] No credentials found. DEBU[0002] Parsing image ref host=index.docker.io image=library/mysql normalized=docker.io/library/mysql tag=5.7 DEBU[0002] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/mysql/manifests/5.7" DEBU[0002] Found a remote digest to compare with remote="sha256:a06310bb26d02a6118ae7fa825c172a0bf594e178c72230fc31674f348033270" DEBU[0002] Comparing local="sha256:a06310bb26d02a6118ae7fa825c172a0bf594e178c72230fc31674f348033270" remote="sha256:a06310bb26d02a6118ae7fa825c172a0bf594e178c72230fc31674f348033270" DEBU[0002] Found a match DEBU[0002] No pull needed. Skipping image. DEBU[0002] No new images found for /aow-mysql-1 DEBU[0002] Trying to load authentication credentials. container=/graylog-graylog-1 image="graylog/graylog:5.1" DEBU[0002] No credentials for index.docker.io found config_file=/config.json DEBU[0002] Got image name: graylog/graylog:5.1 DEBU[0002] Checking if pull is needed container=/graylog-graylog-1 image="graylog/graylog:5.1" DEBU[0002] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0003] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0003] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0003] Setting scope for auth token image=docker.io/graylog/graylog scope="repository:graylog/graylog:pull" DEBU[0003] No credentials found. DEBU[0003] Parsing image ref host=index.docker.io image=graylog/graylog normalized=docker.io/graylog/graylog tag=5.1 DEBU[0003] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/graylog/graylog/manifests/5.1" DEBU[0003] Found a remote digest to compare with remote="sha256:426e0a32bb422368f7db2984125718ee6e00022ea142828007e7c01cbb5018c3" DEBU[0003] Comparing local="sha256:426e0a32bb422368f7db2984125718ee6e00022ea142828007e7c01cbb5018c3" remote="sha256:426e0a32bb422368f7db2984125718ee6e00022ea142828007e7c01cbb5018c3" DEBU[0003] Found a match DEBU[0003] No pull needed. Skipping image. DEBU[0003] No new images found for /graylog-graylog-1 DEBU[0003] Trying to load authentication credentials. container=/healthchecks image="lscr.io/linuxserver/healthchecks:latest" DEBU[0003] No credentials for lscr.io found config_file=/config.json DEBU[0003] Got image name: lscr.io/linuxserver/healthchecks:latest DEBU[0003] Checking if pull is needed container=/healthchecks image="lscr.io/linuxserver/healthchecks:latest" DEBU[0003] Built challenge URL URL="https://lscr.io/v2/" DEBU[0004] Got response to challenge request header="Bearer realm=\"https://ghcr.io/token\",service=\"ghcr.io\",scope=\"repository:user/image:pull\"" status="401 Unauthorized" DEBU[0004] Checking challenge header content realm="https://ghcr.io/token" service=ghcr.io DEBU[0004] Setting scope for auth token image=lscr.io/linuxserver/healthchecks scope="repository:linuxserver/healthchecks:pull" DEBU[0004] No credentials found. DEBU[0004] Parsing image ref host=lscr.io image=linuxserver/healthchecks normalized=lscr.io/linuxserver/healthchecks tag=latest DEBU[0004] Doing a HEAD request to fetch a digest url="https://lscr.io/v2/linuxserver/healthchecks/manifests/latest" DEBU[0004] Could not do a head request for "lscr.io/linuxserver/healthchecks:latest", falling back to regular pull. container=/healthchecks image="lscr.io/linuxserver/healthchecks:latest" DEBU[0004] Reason: registry responded to head request with "401 Unauthorized", auth: "Bearer realm=\"https://ghcr.io/token\",service=\"ghcr.io\",scope=\"repository:linuxserver/healthchecks:pull\"" container=/healthchecks image="lscr.io/linuxserver/healthchecks:latest" DEBU[0004] Pulling image container=/healthchecks image="lscr.io/linuxserver/healthchecks:latest" DEBU[0004] No new images found for /healthchecks DEBU[0004] Trying to load authentication credentials. container=/codigyde-nginx-1 image="nginx:1.21-alpine" DEBU[0004] No credentials for index.docker.io found config_file=/config.json DEBU[0004] Got image name: nginx:1.21-alpine DEBU[0004] Checking if pull is needed container=/codigyde-nginx-1 image="nginx:1.21-alpine" DEBU[0004] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0005] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0005] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0005] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0005] No credentials found. DEBU[0005] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=1.21-alpine DEBU[0005] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/1.21-alpine" DEBU[0005] Found a remote digest to compare with remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0005] Comparing local="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0005] Found a match DEBU[0005] No pull needed. Skipping image. DEBU[0005] No new images found for /codigyde-nginx-1 DEBU[0005] Trying to load authentication credentials. container=/codigyde-db-1 image="mariadb:10" DEBU[0005] No credentials for index.docker.io found config_file=/config.json DEBU[0005] Got image name: mariadb:10 DEBU[0005] Checking if pull is needed container=/codigyde-db-1 image="mariadb:10" DEBU[0005] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0006] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0006] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0006] Setting scope for auth token image=docker.io/library/mariadb scope="repository:library/mariadb:pull" DEBU[0006] No credentials found. DEBU[0006] Parsing image ref host=index.docker.io image=library/mariadb normalized=docker.io/library/mariadb tag=10 DEBU[0006] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/mariadb/manifests/10" DEBU[0006] Found a remote digest to compare with remote="sha256:16b181cf0cbca0bc8e5f8ef3695a82c7bd9ba36cc4fc587f4b357c558faeeccd" DEBU[0006] Comparing local="sha256:16b181cf0cbca0bc8e5f8ef3695a82c7bd9ba36cc4fc587f4b357c558faeeccd" remote="sha256:16b181cf0cbca0bc8e5f8ef3695a82c7bd9ba36cc4fc587f4b357c558faeeccd" DEBU[0006] Found a match DEBU[0006] No pull needed. Skipping image. DEBU[0006] No new images found for /codigyde-db-1 DEBU[0006] Trying to load authentication credentials. container=/grafana-grafana-1 image="grafana/grafana:latest" DEBU[0006] No credentials for index.docker.io found config_file=/config.json DEBU[0006] Got image name: grafana/grafana:latest DEBU[0006] Checking if pull is needed container=/grafana-grafana-1 image="grafana/grafana:latest" DEBU[0006] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0006] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0006] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0006] Setting scope for auth token image=docker.io/grafana/grafana scope="repository:grafana/grafana:pull" DEBU[0006] No credentials found. DEBU[0007] Parsing image ref host=index.docker.io image=grafana/grafana normalized=docker.io/grafana/grafana tag=latest DEBU[0007] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/grafana/grafana/manifests/latest" DEBU[0007] Found a remote digest to compare with remote="sha256:29f39e23705d3ef653fa84ca3c01731e0771f1fedbd69ecb99868270cdeb0572" DEBU[0007] Comparing local="sha256:29f39e23705d3ef653fa84ca3c01731e0771f1fedbd69ecb99868270cdeb0572" remote="sha256:29f39e23705d3ef653fa84ca3c01731e0771f1fedbd69ecb99868270cdeb0572" DEBU[0007] Found a match DEBU[0007] No pull needed. Skipping image. DEBU[0007] No new images found for /grafana-grafana-1 DEBU[0007] Trying to load authentication credentials. container=/grafana-prometheus-1 image="prom/prometheus:latest" DEBU[0007] No credentials for index.docker.io found config_file=/config.json DEBU[0007] Got image name: prom/prometheus:latest DEBU[0007] Checking if pull is needed container=/grafana-prometheus-1 image="prom/prometheus:latest" DEBU[0007] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0007] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0007] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0007] Setting scope for auth token image=docker.io/prom/prometheus scope="repository:prom/prometheus:pull" DEBU[0007] No credentials found. DEBU[0007] Parsing image ref host=index.docker.io image=prom/prometheus normalized=docker.io/prom/prometheus tag=latest DEBU[0007] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/prom/prometheus/manifests/latest" DEBU[0008] Found a remote digest to compare with remote="sha256:089b3beab1304d83280c589a81f6f72ca42006910ff903ea3cf25f97fddc49ea" DEBU[0008] Comparing local="sha256:089b3beab1304d83280c589a81f6f72ca42006910ff903ea3cf25f97fddc49ea" remote="sha256:089b3beab1304d83280c589a81f6f72ca42006910ff903ea3cf25f97fddc49ea" DEBU[0008] Found a match DEBU[0008] No pull needed. Skipping image. DEBU[0008] No new images found for /grafana-prometheus-1 DEBU[0008] Trying to load authentication credentials. container=/grafana-pushgateway-1 image="prom/pushgateway:latest" DEBU[0008] No credentials for index.docker.io found config_file=/config.json DEBU[0008] Got image name: prom/pushgateway:latest DEBU[0008] Checking if pull is needed container=/grafana-pushgateway-1 image="prom/pushgateway:latest" DEBU[0008] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0008] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0008] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0008] Setting scope for auth token image=docker.io/prom/pushgateway scope="repository:prom/pushgateway:pull" DEBU[0008] No credentials found. DEBU[0008] Parsing image ref host=index.docker.io image=prom/pushgateway normalized=docker.io/prom/pushgateway tag=latest DEBU[0008] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/prom/pushgateway/manifests/latest" DEBU[0008] Found a remote digest to compare with remote="sha256:979a69ab4a4016c89f2b1c53dacaf6190cd676c9d55f7659aabdd208ba48b7c7" DEBU[0008] Comparing local="sha256:979a69ab4a4016c89f2b1c53dacaf6190cd676c9d55f7659aabdd208ba48b7c7" remote="sha256:979a69ab4a4016c89f2b1c53dacaf6190cd676c9d55f7659aabdd208ba48b7c7" DEBU[0008] Found a match DEBU[0008] No pull needed. Skipping image. DEBU[0008] No new images found for /grafana-pushgateway-1 DEBU[0008] Trying to load authentication credentials. container=/aow-backend-nginx-1 image="nginx:1.21-alpine" DEBU[0008] No credentials for index.docker.io found config_file=/config.json DEBU[0008] Got image name: nginx:1.21-alpine DEBU[0008] Checking if pull is needed container=/aow-backend-nginx-1 image="nginx:1.21-alpine" DEBU[0008] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0009] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0009] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0009] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0009] No credentials found. DEBU[0009] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=1.21-alpine DEBU[0009] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/1.21-alpine" DEBU[0009] Found a remote digest to compare with remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0009] Comparing local="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0009] Found a match DEBU[0009] No pull needed. Skipping image. DEBU[0009] No new images found for /aow-backend-nginx-1 DEBU[0009] Trying to load authentication credentials. container=/aow-frontend-nginx-1 image="nginx:1.21-alpine" DEBU[0009] No credentials for index.docker.io found config_file=/config.json DEBU[0009] Got image name: nginx:1.21-alpine DEBU[0009] Checking if pull is needed container=/aow-frontend-nginx-1 image="nginx:1.21-alpine" DEBU[0009] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0010] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0010] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0010] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0010] No credentials found. DEBU[0010] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=1.21-alpine DEBU[0010] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/1.21-alpine" DEBU[0010] Found a remote digest to compare with remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0010] Comparing local="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0010] Found a match DEBU[0010] No pull needed. Skipping image. DEBU[0010] No new images found for /aow-frontend-nginx-1 DEBU[0010] Trying to load authentication credentials. container=/aow-couchdb-nginx-1 image="nginx:1.21-alpine" DEBU[0010] No credentials for index.docker.io found config_file=/config.json DEBU[0010] Got image name: nginx:1.21-alpine DEBU[0010] Checking if pull is needed container=/aow-couchdb-nginx-1 image="nginx:1.21-alpine" DEBU[0010] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0010] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0010] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0010] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0010] No credentials found. DEBU[0011] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=1.21-alpine DEBU[0011] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/1.21-alpine" DEBU[0011] Found a remote digest to compare with remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0011] Comparing local="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" remote="sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989" DEBU[0011] Found a match DEBU[0011] No pull needed. Skipping image. DEBU[0011] No new images found for /aow-couchdb-nginx-1 DEBU[0011] Trying to load authentication credentials. container=/aow-couchdb-1 image="couchdb:3.2" DEBU[0011] No credentials for index.docker.io found config_file=/config.json DEBU[0011] Got image name: couchdb:3.2 DEBU[0011] Checking if pull is needed container=/aow-couchdb-1 image="couchdb:3.2" DEBU[0011] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0011] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0011] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0011] Setting scope for auth token image=docker.io/library/couchdb scope="repository:library/couchdb:pull" DEBU[0011] No credentials found. DEBU[0011] Parsing image ref host=index.docker.io image=library/couchdb normalized=docker.io/library/couchdb tag=3.2 DEBU[0011] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/couchdb/manifests/3.2" DEBU[0012] Found a remote digest to compare with remote="sha256:af2288c800ff4b8b21d51df3a1097ae320b2a72ee6b3637904fcc139f014530a" DEBU[0012] Comparing local="sha256:af2288c800ff4b8b21d51df3a1097ae320b2a72ee6b3637904fcc139f014530a" remote="sha256:af2288c800ff4b8b21d51df3a1097ae320b2a72ee6b3637904fcc139f014530a" DEBU[0012] Found a match DEBU[0012] No pull needed. Skipping image. DEBU[0012] No new images found for /aow-couchdb-1 DEBU[0012] Trying to load authentication credentials. container=/graylog-mongodb-1 image="mongo:5.0" DEBU[0012] No credentials for index.docker.io found config_file=/config.json DEBU[0012] Got image name: mongo:5.0 DEBU[0012] Checking if pull is needed container=/graylog-mongodb-1 image="mongo:5.0" DEBU[0012] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0012] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0012] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0012] Setting scope for auth token image=docker.io/library/mongo scope="repository:library/mongo:pull" DEBU[0012] No credentials found. DEBU[0012] Parsing image ref host=index.docker.io image=library/mongo normalized=docker.io/library/mongo tag=5.0 DEBU[0012] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/mongo/manifests/5.0" DEBU[0013] Found a remote digest to compare with remote="sha256:01265baf83280e22bce169e3b1b9a40d83219193717728153fe6c56a174a6748" DEBU[0013] Comparing local="sha256:01265baf83280e22bce169e3b1b9a40d83219193717728153fe6c56a174a6748" remote="sha256:01265baf83280e22bce169e3b1b9a40d83219193717728153fe6c56a174a6748" DEBU[0013] Found a match DEBU[0013] No pull needed. Skipping image. DEBU[0013] No new images found for /graylog-mongodb-1 DEBU[0013] Trying to load authentication credentials. container=/nginx-web image="nginx:latest" DEBU[0013] No credentials for index.docker.io found config_file=/config.json DEBU[0013] Got image name: nginx:latest DEBU[0013] Checking if pull is needed container=/nginx-web image="nginx:latest" DEBU[0013] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0013] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0013] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0013] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0013] No credentials found. DEBU[0013] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=latest DEBU[0013] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/latest" DEBU[0013] Found a remote digest to compare with remote="sha256:32da30332506740a2f7c34d5dc70467b7f14ec67d912703568daff790ab3f755" DEBU[0013] Comparing local="sha256:32da30332506740a2f7c34d5dc70467b7f14ec67d912703568daff790ab3f755" remote="sha256:32da30332506740a2f7c34d5dc70467b7f14ec67d912703568daff790ab3f755" DEBU[0013] Found a match DEBU[0013] No pull needed. Skipping image. DEBU[0013] No new images found for /nginx-web DEBU[0013] Trying to load authentication credentials. container=/nginx-gen image="jwilder/docker-gen:latest" DEBU[0013] No credentials for index.docker.io found config_file=/config.json DEBU[0013] Got image name: jwilder/docker-gen:latest DEBU[0013] Checking if pull is needed container=/nginx-gen image="jwilder/docker-gen:latest" DEBU[0013] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0014] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0014] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0014] Setting scope for auth token image=docker.io/jwilder/docker-gen scope="repository:jwilder/docker-gen:pull" DEBU[0014] No credentials found. DEBU[0014] Parsing image ref host=index.docker.io image=jwilder/docker-gen normalized=docker.io/jwilder/docker-gen tag=latest DEBU[0014] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/jwilder/docker-gen/manifests/latest" DEBU[0014] Found a remote digest to compare with remote="sha256:868a8933552524a12b47a5c8ce6089af5d11e19c233041d6bffbccbf8d87990b" DEBU[0014] Comparing local="sha256:868a8933552524a12b47a5c8ce6089af5d11e19c233041d6bffbccbf8d87990b" remote="sha256:868a8933552524a12b47a5c8ce6089af5d11e19c233041d6bffbccbf8d87990b" DEBU[0014] Found a match DEBU[0014] No pull needed. Skipping image. DEBU[0014] No new images found for /nginx-gen DEBU[0014] Trying to load authentication credentials. container=/nginx-letsencrypt image="jrcs/letsencrypt-nginx-proxy-companion:latest" DEBU[0014] No credentials for index.docker.io found config_file=/config.json DEBU[0014] Got image name: jrcs/letsencrypt-nginx-proxy-companion:latest DEBU[0014] Checking if pull is needed container=/nginx-letsencrypt image="jrcs/letsencrypt-nginx-proxy-companion:latest" DEBU[0014] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0014] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0014] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0014] Setting scope for auth token image=docker.io/jrcs/letsencrypt-nginx-proxy-companion scope="repository:jrcs/letsencrypt-nginx-proxy-companion:pull" DEBU[0014] No credentials found. DEBU[0015] Parsing image ref host=index.docker.io image=jrcs/letsencrypt-nginx-proxy-companion normalized=docker.io/jrcs/letsencrypt-nginx-proxy-companion tag=latest DEBU[0015] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/jrcs/letsencrypt-nginx-proxy-companion/manifests/latest" DEBU[0015] Found a remote digest to compare with remote="sha256:ad9dac090a10048fcb2602936c2cb6ac8f61452a67cd2861fe254e0ecd4c7a74" DEBU[0015] Comparing local="sha256:ad9dac090a10048fcb2602936c2cb6ac8f61452a67cd2861fe254e0ecd4c7a74" remote="sha256:ad9dac090a10048fcb2602936c2cb6ac8f61452a67cd2861fe254e0ecd4c7a74" DEBU[0015] Found a match DEBU[0015] No pull needed. Skipping image. DEBU[0015] No new images found for /nginx-letsencrypt DEBU[0015] Trying to load authentication credentials. container=/headers-php-1 image="php:8.0-fpm" DEBU[0015] No credentials for index.docker.io found config_file=/config.json DEBU[0015] Got image name: php:8.0-fpm DEBU[0015] Checking if pull is needed container=/headers-php-1 image="php:8.0-fpm" DEBU[0015] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0015] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0015] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0015] Setting scope for auth token image=docker.io/library/php scope="repository:library/php:pull" DEBU[0015] No credentials found. DEBU[0015] Parsing image ref host=index.docker.io image=library/php normalized=docker.io/library/php tag=8.0-fpm DEBU[0015] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/php/manifests/8.0-fpm" DEBU[0016] Found a remote digest to compare with remote="sha256:14bb5c1c9774f7bf63aebbc1b7b9b2e817daac77198e56569d1cdf1e2c7b72bb" DEBU[0016] Comparing local="sha256:14bb5c1c9774f7bf63aebbc1b7b9b2e817daac77198e56569d1cdf1e2c7b72bb" remote="sha256:14bb5c1c9774f7bf63aebbc1b7b9b2e817daac77198e56569d1cdf1e2c7b72bb" DEBU[0016] Found a match DEBU[0016] No pull needed. Skipping image. DEBU[0016] No new images found for /headers-php-1 DEBU[0016] Trying to load authentication credentials. container=/grafana-node-exporter-1 image="quay.io/prometheus/node-exporter:latest" DEBU[0016] No credentials for quay.io found config_file=/config.json DEBU[0016] Got image name: quay.io/prometheus/node-exporter:latest DEBU[0016] Checking if pull is needed container=/grafana-node-exporter-1 image="quay.io/prometheus/node-exporter:latest" DEBU[0016] Built challenge URL URL="https://quay.io/v2/" DEBU[0016] Got response to challenge request header="Bearer realm=\"https://quay.io/v2/auth\",service=\"quay.io\"" status="401 Unauthorized" DEBU[0016] Checking challenge header content realm="https://quay.io/v2/auth" service=quay.io DEBU[0016] Setting scope for auth token image=quay.io/prometheus/node-exporter scope="repository:prometheus/node-exporter:pull" DEBU[0016] No credentials found. DEBU[0016] Parsing image ref host=quay.io image=prometheus/node-exporter normalized=quay.io/prometheus/node-exporter tag=latest DEBU[0016] Doing a HEAD request to fetch a digest url="https://quay.io/v2/prometheus/node-exporter/manifests/latest" DEBU[0017] Found a remote digest to compare with remote="sha256:81f94e50ea37a88dfee849d0f4acad25b96b397061f59e5095905f6bc5829637" DEBU[0017] Comparing local="sha256:81f94e50ea37a88dfee849d0f4acad25b96b397061f59e5095905f6bc5829637" remote="sha256:81f94e50ea37a88dfee849d0f4acad25b96b397061f59e5095905f6bc5829637" DEBU[0017] Found a match DEBU[0017] No pull needed. Skipping image. DEBU[0017] No new images found for /grafana-node-exporter-1 DEBU[0017] Trying to load authentication credentials. container=/grafana-nextcloud-exporter-1 image="ghcr.io/xperimental/nextcloud-exporter:latest" DEBU[0017] No credentials for ghcr.io found config_file=/config.json DEBU[0017] Got image name: ghcr.io/xperimental/nextcloud-exporter:latest DEBU[0017] Checking if pull is needed container=/grafana-nextcloud-exporter-1 image="ghcr.io/xperimental/nextcloud-exporter:latest" DEBU[0017] Built challenge URL URL="https://ghcr.io/v2/" DEBU[0017] Got response to challenge request header="Bearer realm=\"https://ghcr.io/token\",service=\"ghcr.io\",scope=\"repository:user/image:pull\"" status="401 Unauthorized" DEBU[0017] Checking challenge header content realm="https://ghcr.io/token" service=ghcr.io DEBU[0017] Setting scope for auth token image=ghcr.io/xperimental/nextcloud-exporter scope="repository:xperimental/nextcloud-exporter:pull" DEBU[0017] No credentials found. DEBU[0017] Parsing image ref host=ghcr.io image=xperimental/nextcloud-exporter normalized=ghcr.io/xperimental/nextcloud-exporter tag=latest DEBU[0017] Doing a HEAD request to fetch a digest url="https://ghcr.io/v2/xperimental/nextcloud-exporter/manifests/latest" DEBU[0017] Found a remote digest to compare with remote="sha256:f264d465eb0a65f72c263e891f3e24ce6883ab7db534fa6eb7522eae04b910b7" DEBU[0017] Comparing local="sha256:f264d465eb0a65f72c263e891f3e24ce6883ab7db534fa6eb7522eae04b910b7" remote="sha256:f264d465eb0a65f72c263e891f3e24ce6883ab7db534fa6eb7522eae04b910b7" DEBU[0017] Found a match DEBU[0017] No pull needed. Skipping image. DEBU[0017] No new images found for /grafana-nextcloud-exporter-1 DEBU[0017] Trying to load authentication credentials. container=/grafana-cadvisor-1 image="gcr.io/cadvisor/cadvisor:v0.47.2" DEBU[0017] No credentials for gcr.io found config_file=/config.json DEBU[0017] Got image name: gcr.io/cadvisor/cadvisor:v0.47.2 DEBU[0017] Checking if pull is needed container=/grafana-cadvisor-1 image="gcr.io/cadvisor/cadvisor:v0.47.2" DEBU[0017] Built challenge URL URL="https://gcr.io/v2/" DEBU[0017] Got response to challenge request header="Bearer realm=\"https://gcr.io/v2/token\",service=\"gcr.io\"" status="401 Unauthorized" DEBU[0017] Checking challenge header content realm="https://gcr.io/v2/token" service=gcr.io DEBU[0017] Setting scope for auth token image=gcr.io/cadvisor/cadvisor scope="repository:cadvisor/cadvisor:pull" DEBU[0017] No credentials found. DEBU[0017] Parsing image ref host=gcr.io image=cadvisor/cadvisor normalized=gcr.io/cadvisor/cadvisor tag=v0.47.2 DEBU[0017] Doing a HEAD request to fetch a digest url="https://gcr.io/v2/cadvisor/cadvisor/manifests/v0.47.2" DEBU[0018] Found a remote digest to compare with remote="sha256:78cf73632de30193dc249923fdfdb1d43ee7cfccbf64662991de89ff7c4b1fda" DEBU[0018] Comparing local="sha256:78cf73632de30193dc249923fdfdb1d43ee7cfccbf64662991de89ff7c4b1fda" remote="sha256:78cf73632de30193dc249923fdfdb1d43ee7cfccbf64662991de89ff7c4b1fda" DEBU[0018] Found a match DEBU[0018] No pull needed. Skipping image. DEBU[0018] No new images found for /grafana-cadvisor-1 DEBU[0018] Trying to load authentication credentials. container=/grafana-alertmanager-1 image="prom/alertmanager:v0.25.0" DEBU[0018] No credentials for index.docker.io found config_file=/config.json DEBU[0018] Got image name: prom/alertmanager:v0.25.0 DEBU[0018] Checking if pull is needed container=/grafana-alertmanager-1 image="prom/alertmanager:v0.25.0" DEBU[0018] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0018] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0018] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0018] Setting scope for auth token image=docker.io/prom/alertmanager scope="repository:prom/alertmanager:pull" DEBU[0018] No credentials found. DEBU[0018] Parsing image ref host=index.docker.io image=prom/alertmanager normalized=docker.io/prom/alertmanager tag=v0.25.0 DEBU[0018] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/prom/alertmanager/manifests/v0.25.0" DEBU[0019] Found a remote digest to compare with remote="sha256:fd4d9a3dd1fd0125108417be21be917f19cc76262347086509a0d43f29b80e98" DEBU[0019] Comparing local="sha256:fd4d9a3dd1fd0125108417be21be917f19cc76262347086509a0d43f29b80e98" remote="sha256:fd4d9a3dd1fd0125108417be21be917f19cc76262347086509a0d43f29b80e98" DEBU[0019] Found a match DEBU[0019] No pull needed. Skipping image. DEBU[0019] No new images found for /grafana-alertmanager-1 DEBU[0019] Trying to load authentication credentials. container=/grafana-blackbox-exporter-1 image="quay.io/prometheus/blackbox-exporter:latest" DEBU[0019] No credentials for quay.io found config_file=/config.json DEBU[0019] Got image name: quay.io/prometheus/blackbox-exporter:latest DEBU[0019] Checking if pull is needed container=/grafana-blackbox-exporter-1 image="quay.io/prometheus/blackbox-exporter:latest" DEBU[0019] Built challenge URL URL="https://quay.io/v2/" DEBU[0019] Got response to challenge request header="Bearer realm=\"https://quay.io/v2/auth\",service=\"quay.io\"" status="401 Unauthorized" DEBU[0019] Checking challenge header content realm="https://quay.io/v2/auth" service=quay.io DEBU[0019] Setting scope for auth token image=quay.io/prometheus/blackbox-exporter scope="repository:prometheus/blackbox-exporter:pull" DEBU[0019] No credentials found. DEBU[0019] Parsing image ref host=quay.io image=prometheus/blackbox-exporter normalized=quay.io/prometheus/blackbox-exporter tag=latest DEBU[0019] Doing a HEAD request to fetch a digest url="https://quay.io/v2/prometheus/blackbox-exporter/manifests/latest" DEBU[0019] Found a remote digest to compare with remote="sha256:3af31f8bd1ad2907b4b0f7c485fde3de0a8ee0b498d42fc971f0698885c03acb" DEBU[0019] Comparing local="sha256:3af31f8bd1ad2907b4b0f7c485fde3de0a8ee0b498d42fc971f0698885c03acb" remote="sha256:3af31f8bd1ad2907b4b0f7c485fde3de0a8ee0b498d42fc971f0698885c03acb" DEBU[0019] Found a match DEBU[0019] No pull needed. Skipping image. DEBU[0019] No new images found for /grafana-blackbox-exporter-1 DEBU[0019] Trying to load authentication credentials. container=/anna-und-daniel.de image="nginx:1.21" DEBU[0019] No credentials for index.docker.io found config_file=/config.json DEBU[0019] Got image name: nginx:1.21 DEBU[0019] Checking if pull is needed container=/anna-und-daniel.de image="nginx:1.21" DEBU[0019] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0020] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0020] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0020] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0020] No credentials found. DEBU[0020] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=1.21 DEBU[0020] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/1.21" DEBU[0020] Found a remote digest to compare with remote="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" DEBU[0020] Comparing local="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" remote="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" DEBU[0020] Found a match DEBU[0020] No pull needed. Skipping image. DEBU[0020] No new images found for /anna-und-daniel.de DEBU[0020] Trying to load authentication credentials. container=/pihole-pihole-1 image="pihole/pihole:latest" DEBU[0020] No credentials for index.docker.io found config_file=/config.json DEBU[0020] Got image name: pihole/pihole:latest DEBU[0020] Checking if pull is needed container=/pihole-pihole-1 image="pihole/pihole:latest" DEBU[0020] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0021] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0021] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0021] Setting scope for auth token image=docker.io/pihole/pihole scope="repository:pihole/pihole:pull" DEBU[0021] No credentials found. DEBU[0021] Parsing image ref host=index.docker.io image=pihole/pihole normalized=docker.io/pihole/pihole tag=latest DEBU[0021] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/pihole/pihole/manifests/latest" DEBU[0021] Found a remote digest to compare with remote="sha256:8bc45afe1625487aef62859a5bf02f3d7b3429e480f4e29e4689635ab86ec312" DEBU[0021] Comparing local="sha256:8bc45afe1625487aef62859a5bf02f3d7b3429e480f4e29e4689635ab86ec312" remote="sha256:8bc45afe1625487aef62859a5bf02f3d7b3429e480f4e29e4689635ab86ec312" DEBU[0021] Found a match DEBU[0021] No pull needed. Skipping image. DEBU[0021] No new images found for /pihole-pihole-1 DEBU[0021] Trying to load authentication credentials. container=/visualappeal.de image="nginx:1.21" DEBU[0021] No credentials for index.docker.io found config_file=/config.json DEBU[0021] Got image name: nginx:1.21 DEBU[0021] Checking if pull is needed container=/visualappeal.de image="nginx:1.21" DEBU[0021] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0021] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0021] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0021] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0021] No credentials found. DEBU[0021] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=1.21 DEBU[0021] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/1.21" DEBU[0022] Found a remote digest to compare with remote="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" DEBU[0022] Comparing local="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" remote="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" DEBU[0022] Found a match DEBU[0022] No pull needed. Skipping image. DEBU[0022] No new images found for /visualappeal.de DEBU[0022] Trying to load authentication credentials. container=/thelfensdrfer.de image="nginx:1.21" DEBU[0022] No credentials for index.docker.io found config_file=/config.json DEBU[0022] Got image name: nginx:1.21 DEBU[0022] Checking if pull is needed container=/thelfensdrfer.de image="nginx:1.21" DEBU[0022] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0022] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0022] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0022] Setting scope for auth token image=docker.io/library/nginx scope="repository:library/nginx:pull" DEBU[0022] No credentials found. DEBU[0022] Parsing image ref host=index.docker.io image=library/nginx normalized=docker.io/library/nginx tag=1.21 DEBU[0022] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/library/nginx/manifests/1.21" DEBU[0023] Found a remote digest to compare with remote="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" DEBU[0023] Comparing local="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" remote="sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514" DEBU[0023] Found a match DEBU[0023] No pull needed. Skipping image. DEBU[0023] No new images found for /thelfensdrfer.de DEBU[0023] Trying to load authentication credentials. container=/graylog-opensearch-1 image="opensearchproject/opensearch:2.4.0" DEBU[0023] No credentials for index.docker.io found config_file=/config.json DEBU[0023] Got image name: opensearchproject/opensearch:2.4.0 DEBU[0023] Checking if pull is needed container=/graylog-opensearch-1 image="opensearchproject/opensearch:2.4.0" DEBU[0023] Built challenge URL URL="https://index.docker.io/v2/" DEBU[0023] Got response to challenge request header="Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"" status="401 Unauthorized" DEBU[0023] Checking challenge header content realm="https://auth.docker.io/token" service=registry.docker.io DEBU[0023] Setting scope for auth token image=docker.io/opensearchproject/opensearch scope="repository:opensearchproject/opensearch:pull" DEBU[0023] No credentials found. DEBU[0023] Parsing image ref host=index.docker.io image=opensearchproject/opensearch normalized=docker.io/opensearchproject/opensearch tag=2.4.0 DEBU[0023] Doing a HEAD request to fetch a digest url="https://index.docker.io/v2/opensearchproject/opensearch/manifests/2.4.0" DEBU[0023] Found a remote digest to compare with remote="sha256:ffd7da5e9b8365ce49596f8bd66b782fe99321db57badb263c29a21ec4e4697c" DEBU[0023] Comparing local="sha256:ffd7da5e9b8365ce49596f8bd66b782fe99321db57badb263c29a21ec4e4697c" remote="sha256:ffd7da5e9b8365ce49596f8bd66b782fe99321db57badb263c29a21ec4e4697c" DEBU[0023] Found a match DEBU[0023] No pull needed. Skipping image. DEBU[0023] No new images found for /graylog-opensearch-1 DEBU[0023] This is the watchtower container /watchtower-watchtower-run-96c73d698c70 INFO[0023] Session done Failed=0 Scanned=28 Updated=0 notify=no INFO[0023] Waiting for the notification goroutine to finish notify=no ```

Additional context

The debug log does not contain the error message from the email.

github-actions[bot] commented 1 year ago

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! 🙏

piksel commented 1 year ago

Are you sure those e-mails are from watchtower? I don't think it's possible to send notifications without logging, as the notifications are built on top of the logging system.

thelfensdrfer commented 1 year ago

Pretty sure, yeah. The subject line says „ [my subject tag] Watchtower updates on ****“ and they get send at the same time the updates should run. They also stopped when I stopped the watchtower docker container.

piksel commented 1 year ago

Yeah, now I see where they come from, it's from failing to run the lifecycle hooks. Those messages should absolutely be in your logs though, where they contain the additional metadata (including container name). You can also change the notification template to include all the additional tags in the message (have not tried it though).

Also, from your log above: INFO[0001] Using no notifications

Are you running multiple watchtower instances perhaps? Use docker logs watchtower to see the logs from your running instance (given it's named watchtower).

thelfensdrfer commented 1 year ago

Just for completeness sakes, here is my complete docker-compose.yml file:

version: '3'

x-logging: 
  &default-logging
  driver: gelf     
  options:
    gelf-address: "tcp://****:****"

services:
    watchtower:
        image: containrrr/watchtower:latest
        restart: unless-stopped
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        environment:
            WATCHTOWER_NOTIFICATIONS: email
            WATCHTOWER_NOTIFICATIONS_LEVEL: warn
            WATCHTOWER_NOTIFICATION_EMAIL_FROM: ****
            WATCHTOWER_NOTIFICATION_EMAIL_TO: ****
            WATCHTOWER_NOTIFICATION_EMAIL_SERVER: ****
            WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: ****
            WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: "****"
            WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG: "****"
            WATCHTOWER_LIFECYCLE_HOOKS: "true"
            WATCHTOWER_HTTP_API_METRICS: "true"
            WATCHTOWER_HTTP_API_TOKEN: "****"
            WATCHTOWER_SCHEDULE: "0 0 * * * *"
            WATCHTOWER_CLEANUP: "true"
            WATCHTOWER_TIMEOUT: "30s"
            VIRTUAL_HOST: ****
            VIRTUAL_PORT: 8080
            LETSENCRYPT_HOST: ****
            LETSENCRYPT_EMAIL: ****
        logging: *default-logging

    healthcheck:
        image: curlimages/curl:8.2.1
        restart: unless-stopped
        labels:
            - "com.centurylinklabs.watchtower.lifecycle.pre-check=curl -m 10 --retry 5 https://****/start"
            - "com.centurylinklabs.watchtower.lifecycle.post-check=curl -m 10 --retry 5 https://****"
        entrypoint: tail -f /dev/null
        logging: *default-logging

networks:
  default:
    external: true
    name: webproxy

Now that I have stopped this instance, no other watchtowers are running:

[****@**** watchtower]$ docker ps | grep watchtower
[****@**** watchtower]$

With the configuration from above, my docker log looks like this:

[****@**** watchtower]$ docker compose logs
watchtower-watchtower-1  | time="2023-10-05T10:23:32Z" level=info msg="Watchtower 1.6.0"
watchtower-watchtower-1  | time="2023-10-05T10:23:32Z" level=info msg="Using notifications: smtp"
watchtower-watchtower-1  | time="2023-10-05T10:23:32Z" level=info msg="Checking all containers (except explicitly disabled with label)"
watchtower-watchtower-1  | time="2023-10-05T10:23:32Z" level=info msg="Scheduling first run: 2023-10-05 11:00:00 +0000 UTC"
watchtower-watchtower-1  | time="2023-10-05T10:23:32Z" level=info msg="Note that the first check will be performed in 36 minutes, 27 seconds"
watchtower-watchtower-1  | time="2023-10-05T11:00:06Z" level=warning msg="Could not do a head request for \"mysql:5.7\", falling back to regular pull." container=/aow-mysql-1 image="mysql:5.7"
watchtower-watchtower-1  | time="2023-10-05T11:00:06Z" level=warning msg="Reason: invalid character 'S' looking for beginning of value" container=/aow-mysql-1 image="mysql:5.7"
watchtower-watchtower-1  | time="2023-10-05T11:00:32Z" level=info msg="Session done" Failed=0 Scanned=29 Updated=0 notify=no
watchtower-watchtower-1  | time="2023-10-05T12:00:33Z" level=info msg="Session done" Failed=0 Scanned=29 Updated=0 notify=no
watchtower-watchtower-1  | time="2023-10-05T13:00:32Z" level=info msg="Session done" Failed=0 Scanned=29 Updated=0 notify=no
watchtower-watchtower-1  | time="2023-10-05T14:00:38Z" level=info msg="Session done" Failed=0 Scanned=29 Updated=0 notify=no
watchtower-watchtower-1  | time="2023-10-05T15:00:36Z" level=info msg="Session done" Failed=0 Scanned=29 Updated=0 notify=no
watchtower-watchtower-1  | time="2023-10-05T16:00:34Z" level=info msg="Session done" Failed=0 Scanned=29 Updated=0 notify=no
watchtower-watchtower-1  | time="2023-10-05T16:43:56Z" level=info msg="Waiting for running update to be finished..."

If I did configure it wrongly, so the container names are stripped somewhere, please let me know! But thanks for the tip with the templates, I will try it out.