5558c206a0
La prod servait encore a70e0e4 (25/07) alors que main en etait a 79 commits plus loin : les stacks luz et dev-luz epinglaient « :develop », un tag que la CI de l'app ne pousse plus depuis qu'elle ne se declenche que sur main (images.yml publie sha-<court>, main et latest). Rien ne le signalait : Watchtower repondait bien 200 a /v1/update, ne trouvait aucune image plus recente pour « :develop » et ne recreait donc rien. Seule la verification post-deploiement de la CI a fini par le dire. Les quatre images (backend + webapp, prod et dev-luz) visent desormais « :main ». Les en-tetes des deux stacks rappellent que ce tag doit rester celui que publie images.yml, changer l'un imposant de changer l'autre. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
39 lines
1.4 KiB
YAML
39 lines
1.4 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) 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
|
|
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
|