From 9a37ed4b8f08aa1026c3f4a8567317cfdf87e9db Mon Sep 17 00:00:00 2001 From: Gato Date: Wed, 22 Jul 2026 07:07:07 +0200 Subject: [PATCH] =?UTF-8?q?fix(watchtower):=20authentifie=20le=20pull=20de?= =?UTF-8?q?s=20images=20priv=C3=A9es=20Gitea=20(reqPackageAccess)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Watchtower déclenchait bien /v1/update (200) mais échouait à tirer luz-backend/luz-webapp :develop (« unauthorized: reqPackageAccess »), d'où Updated=0 silencieux : les conteneurs n'étaient jamais recréés et la prod restait figée sur une ancienne image malgré une CI verte. Le montage de /root/.docker/config.json était inopérant (le docker login du CI a lieu sur le runner, pas sur l'hôte). On le remplace par des identifiants de pull explicites REPO_USER/REPO_PASS (PAT read:package, via REGISTRY_USER/REGISTRY_PASS du .env). .env.example documenté. Co-Authored-By: Claude Opus 4.8 (1M context) --- watchtower/.env.example | 8 ++++++++ watchtower/docker-compose.yml | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/watchtower/.env.example b/watchtower/.env.example index 80b0182..bf2050b 100644 --- a/watchtower/.env.example +++ b/watchtower/.env.example @@ -1 +1,9 @@ +# Jeton d'authentification de l'API HTTP de Watchtower (déclenchement du /v1/update +# par la CI). Doit être identique au secret WATCHTOWER_TOKEN côté Gitea Actions. WATCHTOWER_TOKEN=votre_token_secret_ici + +# Identifiants de pull du registre Gitea privé (git.goutailler-olivier.com). +# PAT en LECTURE seule (scope read:package) d'un compte membre de l'org Luz. +# Utilisés par Watchtower (REPO_USER/REPO_PASS) pour tirer luz-backend/luz-webapp. +REGISTRY_USER=nom_utilisateur_gitea +REGISTRY_PASS=pat_read_package_ici diff --git a/watchtower/docker-compose.yml b/watchtower/docker-compose.yml index 54fdcd9..cd335b3 100644 --- a/watchtower/docker-compose.yml +++ b/watchtower/docker-compose.yml @@ -7,12 +7,20 @@ services: restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock - - /root/.docker/config.json:/root/.docker/config.json:ro environment: WATCHTOWER_HTTP_API_UPDATE: "true" WATCHTOWER_HTTP_API_TOKEN: ${WATCHTOWER_TOKEN} WATCHTOWER_LABEL_ENABLE: "true" WATCHTOWER_CLEANUP: "true" + # Identifiants de pull du registre Gitea privé (git.goutailler-olivier.com). + # Sans eux, Watchtower échoue à tirer luz-backend/luz-webapp :develop + # (« unauthorized: reqPackageAccess ») et ne recrée jamais les conteneurs + # — le déploiement reste bloqué en silence (Updated=0, mais /v1/update → 200). + # Un PAT en LECTURE seule (scope read:package) sur l'org Luz suffit. + # Remplace l'ancien montage de /root/.docker/config.json, qui côté hôte + # ne contenait aucune auth (le docker login du CI a lieu sur le runner). + REPO_USER: ${REGISTRY_USER} + REPO_PASS: ${REGISTRY_PASS} TZ: Europe/Paris networks: - proxy