Files
Infra/watchtower/docker-compose.yml
T
Gato 7ae0d9f87f docs(watchtower): le PAT de pull doit couvrir Bonsai, plus seulement Luz
Le commentaire disait qu'un PAT read:package sur l'org Luz suffisait — c'était
vrai tant que Luz était seul à publier des images. La stack bonsai tire désormais
bonsai-api du même registre avec les mêmes identifiants : un PAT limité à Luz la
laisserait bloquée sur son ancienne image, sans rien signaler.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 14:03:04 +02:00

42 lines
1.7 KiB
YAML

name: watchtower
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
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 :main
# (« 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) suffit — mais il lui faut
# accès aux DEUX organisations qui publient des images ici : Luz et, depuis
# que la stack bonsai tire bonsai-api du registre, Bonsai. Un PAT limité à
# Luz laisserait la prod Bonsai bloquée sur son ancienne image, en silence.
# 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
labels:
- traefik.enable=true
- traefik.http.routers.watchtower.rule=Host(`watchtower.goutailler-olivier.com`)
- traefik.http.routers.watchtower.entrypoints=websecure
- traefik.http.routers.watchtower.tls.certresolver=le
- traefik.http.services.watchtower.loadbalancer.server.port=8080
- traefik.docker.network=proxy
networks:
proxy:
external: true
name: proxy