7ae0d9f87f
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>
42 lines
1.7 KiB
YAML
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
|