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>
122 lines
3.7 KiB
Markdown
122 lines
3.7 KiB
Markdown
# 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` :
|
|
|
|
```yaml
|
|
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é avec `compose.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 :
|
|
|
|
```bash
|
|
# 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` :
|
|
|
|
```bash
|
|
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 :
|
|
|
|
```bash
|
|
# 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) :
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. **Déployer** : redéployer l'application sur Coolify avec le nouveau `compose.coolify.yml`
|
|
2. **Vérifier** : suivre les étapes de vérification ci-dessus
|
|
3. **Activer backup** : si le service backup n'est pas déjà actif, l'activer avec le profil
|
|
4. **Monitoring** : surveiller les logs Ofelia pendant quelques jours
|
|
|
|
## Notes Importantes
|
|
|
|
- Le service `backup` est dans un profil optionnel (`profiles: [backup]`). Pour que les jobs Ofelia fonctionnent, ce service doit être démarré manuellement :
|
|
```bash
|
|
docker compose --profile backup up -d backup
|
|
```
|
|
|
|
- Ofelia peut tourner même si le service `backup` n'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
|