Resolves BARAAA-70 - agenthub-ofelia-1 container restart loop The Ofelia scheduler was not defined in the compose file, only the Ofelia labels on the backup service existed. This caused a container restart loop because there was no Ofelia service to read those labels and execute scheduled tasks. Changes: - Add ofelia service with mcuadros/ofelia:latest image - Mount Docker socket read-only for container monitoring - Depend on postgres (aligned with compose.lan.yml) - Add ofelia.enabled=true label for auto-activation - Add verification script (scripts/verify-ofelia.sh) - Add verification documentation (docs/BARAAA-70-VERIFICATION.md) After deployment, the Ofelia container should start successfully and detect the backup-daily cron job (daily at 3am UTC). Co-Authored-By: Paperclip <noreply@paperclip.ing>
3.7 KiB
BARAAA-70 : Correction Ofelia en Boucle de Redémarrage
Problème Résolu
Le service Ofelia était en boucle de redémarrage car il n'était pas défini dans compose.coolify.yml. Les labels Ofelia étaient présents sur le service backup, mais aucun scheduler Ofelia n'existait pour les lire et exécuter les tâches planifiées.
Solution Appliquée
Ajout du service ofelia dans compose.coolify.yml :
ofelia:
image: mcuadros/ofelia:latest
command: daemon --docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
depends_on:
- postgres
labels:
- 'coolify.managed=true'
- 'coolify.type=service'
- 'ofelia.enabled=true'
Caractéristiques de la Configuration
- Image officielle :
mcuadros/ofelia:latest - Mode :
daemon --docker(surveille les labels Docker) - Socket Docker : monté en lecture seule pour surveiller les conteneurs
- Dépendance : démarre après
postgres(aligné aveccompose.lan.yml) - Restart policy :
unless-stopped(redémarre automatiquement) - Label Ofelia :
ofelia.enabled=true(auto-activation)
Vérification Post-Déploiement
1. Vérifier que le Service Démarre
Via l'interface Coolify ou Docker :
# Vérifier le statut du conteneur
docker ps | grep ofelia
# Attendu : état "Up" (pas de restart loop)
# Vérifier les logs
docker logs agenthub-ofelia-1 --tail 50
# Attendu : messages de démarrage sans erreur
Logs attendus :
Starting Ofelia...
Ofelia is running in daemon mode
Watching Docker containers for job labels
2. Vérifier la Détection des Jobs
Ofelia devrait détecter les jobs définis dans les labels du service backup :
docker logs agenthub-ofelia-1 | grep backup-daily
Attendu :
Job backup-daily registered: schedule=0 0 3 * * *, command=/usr/local/bin/backup.sh
3. Tester le Job Backup Manuellement (Optionnel)
Pour vérifier que le job fonctionne sans attendre 3h du matin :
# Activer le profil backup si pas déjà fait
docker compose --profile backup up -d backup
# Exécuter le job manuellement via Ofelia
docker exec agenthub-ofelia-1 ofelia run backup-daily
# Vérifier les logs du backup
docker logs agenthub-backup-1
Attendu : fichier de backup créé dans /backups du conteneur backup.
4. Vérifier le Cron Automatique
Le backup automatique devrait s'exécuter tous les jours à 3h00 (UTC) :
# Le lendemain matin, vérifier les logs Ofelia
docker logs agenthub-ofelia-1 | grep "Job backup-daily"
# Vérifier les logs du service backup
docker logs agenthub-backup-1 --since 24h
Prochaines Étapes
- Déployer : redéployer l'application sur Coolify avec le nouveau
compose.coolify.yml - Vérifier : suivre les étapes de vérification ci-dessus
- Activer backup : si le service backup n'est pas déjà actif, l'activer avec le profil
- Monitoring : surveiller les logs Ofelia pendant quelques jours
Notes Importantes
-
Le service
backupest dans un profil optionnel (profiles: [backup]). Pour que les jobs Ofelia fonctionnent, ce service doit être démarré manuellement :docker compose --profile backup up -d backup -
Ofelia peut tourner même si le service
backupn'est pas actif. Il attendra simplement que le conteneur cible soit disponible. -
Le socket Docker doit être accessible en lecture pour qu'Ofelia puisse surveiller les labels et exécuter les commandes dans les conteneurs.
Références
- Configuration de référence :
compose.lan.yml(lignes 35-44) - Documentation Ofelia : https://github.com/mcuadros/ofelia
- Format cron :
0 0 3 * * *= tous les jours à 3h00 UTC