# 🔍 Commandes de Debug Portainer - Status REJECTED ## ProblĂšme Les tĂąches Docker Swarm passent de `pending` Ă  `rejected`, ce qui signifie que le conteneur ne peut pas dĂ©marrer. ## Commandes de Diagnostic ### 1. Voir les logs dĂ©taillĂ©s du service ```bash # Backend docker service logs xpeditis_xpeditis-backend --tail=100 --follow # Frontend docker service logs xpeditis_xpeditis-frontend --tail=100 --follow # Voir TOUTES les erreurs depuis le dĂ©but docker service logs xpeditis_xpeditis-backend --no-trunc ``` ### 2. Inspecter le service pour voir l'erreur exacte ```bash # Backend docker service ps xpeditis_xpeditis-backend --no-trunc # Frontend docker service ps xpeditis_xpeditis-frontend --no-trunc # Cela va montrer la raison du rejet dans la colonne "ERROR" ``` ### 3. VĂ©rifier l'Ă©tat du service ```bash docker service inspect xpeditis_xpeditis-backend --pretty docker service inspect xpeditis_xpeditis-frontend --pretty ``` ### 4. Tester manuellement le pull de l'image ```bash # Teste si l'image peut ĂȘtre tĂ©lĂ©chargĂ©e docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod # Si erreur "unauthorized" → problĂšme de credentials # Si erreur "manifest unknown" → l'image n'existe pas # Si erreur "connection refused" → problĂšme rĂ©seau ``` ### 5. VĂ©rifier les credentials du registry ```bash # VĂ©rifie si tu es login au registry docker info | grep -A 5 "Registry" # Login au registry Scaleway docker login rg.fr-par.scw.cloud/weworkstudio # Username: nologin # Password: ``` --- ## 🐛 Erreurs Communes et Solutions ### Erreur 1: "no suitable node (insufficient resources)" **Cause**: Pas assez de RAM/CPU sur le serveur **Solution**: ```bash # VĂ©rifie les ressources disponibles docker node ls docker node inspect --pretty # LibĂšre de l'espace docker system prune -a ``` ### Erreur 2: "image not found" ou "manifest unknown" **Cause**: L'image n'existe pas dans le registry **Solution**: 1. VĂ©rifie que le CI/CD a bien terminĂ© 2. VĂ©rifie sur Scaleway Console que les images existent 3. VĂ©rifie les tags disponibles ### Erreur 3: "unauthorized: authentication required" **Cause**: Docker Swarm n'a pas les credentials du registry **Solution**: ```bash # Sur CHAQUE nƓud du Swarm: docker login rg.fr-par.scw.cloud/weworkstudio # OU configure le registry dans Portainer: # Portainer → Registries → Add registry # Name: Scaleway # URL: rg.fr-par.scw.cloud/weworkstudio # Username: nologin # Password: ``` ### Erreur 4: "pull access denied" **Cause**: Token Scaleway expirĂ© ou invalide **Solution**: 1. GĂ©nĂšre un nouveau token sur Scaleway Console 2. Mets Ă  jour le secret GitHub Actions `REGISTRY_TOKEN` 3. Mets Ă  jour les credentials dans Portainer ### Erreur 5: "network xpeditis_internal not found" **Cause**: Le rĂ©seau overlay n'existe pas **Solution**: ```bash # CrĂ©e le rĂ©seau manuellement docker network create --driver overlay --internal xpeditis_internal # RedĂ©ploie la stack docker stack deploy -c portainer-stack.yml xpeditis ``` ### Erreur 6: "traefik_network not found" **Cause**: Le rĂ©seau Traefik externe n'existe pas **Solution**: ```bash # VĂ©rifie que Traefik est bien dĂ©ployĂ© docker network ls | grep traefik # Si le rĂ©seau n'existe pas, crĂ©e-le: docker network create --driver overlay traefik_network ``` ### Erreur 7: "container failed to start" **Cause**: L'application crash au dĂ©marrage **Solution**: ```bash # Voir les logs de dĂ©marrage docker service logs xpeditis_xpeditis-backend --tail=200 # Erreurs courantes: # - Variables d'environnement manquantes # - Database non accessible # - Redis non accessible # - Port dĂ©jĂ  utilisĂ© ``` --- ## 🔧 Commandes de RĂ©paration ### RedĂ©marrer complĂštement la stack ```bash # Supprime la stack docker stack rm xpeditis # Attends 30 secondes que tout se nettoie sleep 30 # RedĂ©ploie docker stack deploy -c portainer-stack.yml xpeditis ``` ### Forcer le re-pull des images ```bash # Update le service avec force docker service update --force --image rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod xpeditis_xpeditis-backend docker service update --force --image rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod xpeditis_xpeditis-frontend ``` ### VĂ©rifier la configuration de la stack ```bash # Valide le fichier compose docker stack config -c portainer-stack.yml # Cela va afficher les warnings/erreurs de configuration ``` --- ## 📊 Monitoring en Temps RĂ©el ```bash # Surveille les Ă©vĂ©nements Docker docker events --filter type=service # Surveille les tasks qui Ă©chouent watch -n 2 'docker service ps xpeditis_xpeditis-backend --no-trunc' # Surveille tous les services de la stack docker stack ps xpeditis --no-trunc --filter "desired-state=running" ``` --- ## 🎯 Workflow de Debug RecommandĂ© 1. **Voir l'erreur exacte**: ```bash docker service ps xpeditis_xpeditis-backend --no-trunc ``` 2. **Lire les logs**: ```bash docker service logs xpeditis_xpeditis-backend --tail=100 ``` 3. **Tester le pull manuel**: ```bash docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod ``` 4. **VĂ©rifier les dĂ©pendances** (DB, Redis, MinIO): ```bash docker service ls docker service ps xpeditis_xpeditis-db docker service ps xpeditis_xpeditis-redis docker service ps xpeditis_xpeditis-minio ``` 5. **RedĂ©ployer si nĂ©cessaire**: ```bash docker service update --force xpeditis_xpeditis-backend ``` --- ## 🔐 Configuration Registry dans Portainer Via l'interface Portainer: 1. **Registries** → **Add registry** 2. Remplis: - **Name**: `Scaleway Container Registry` - **Registry URL**: `rg.fr-par.scw.cloud/weworkstudio` - **Authentication**: ✅ ON - **Username**: `nologin` - **Password**: `` (le mĂȘme que dans GitHub Secrets) 3. **Add registry** 4. **Stacks** → **xpeditis** → **Editor** 5. En bas de la page, sĂ©lectionne le registry nouvellement ajoutĂ© 6. **Update the stack** --- ## 📝 Checklist de VĂ©rification - [ ] CI/CD GitHub Actions terminĂ© avec succĂšs - [ ] Images existent sur Scaleway Container Registry - [ ] Registry configurĂ© dans Portainer avec credentials - [ ] RĂ©seau `traefik_network` existe - [ ] PostgreSQL, Redis, MinIO dĂ©marrent correctement - [ ] Variables d'environnement correctes dans la stack - [ ] Pas d'erreur de pull dans `docker service ps` - [ ] Logs de dĂ©marrage ne montrent pas d'erreur --- ## 🆘 Si Rien ne Fonctionne 1. **Supprime et redĂ©ploie tout**: ```bash docker stack rm xpeditis sleep 30 docker system prune -f docker stack deploy -c portainer-stack.yml xpeditis ``` 2. **VĂ©rifie manuellement avec docker-compose** (en local sur le serveur): ```bash # Convertis la stack en docker-compose docker-compose -f portainer-stack.yml config # Lance en mode local pour debug docker-compose -f portainer-stack.yml up backend ``` 3. **Contacte le support Scaleway** si problĂšme de registry --- ## 📞 Informations Importantes - **Registry Scaleway**: `rg.fr-par.scw.cloud/weworkstudio` - **Images**: - Backend: `rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod` - Frontend: `rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod` - **Username registry**: `nologin` - **Password registry**: Dans GitHub Secrets `REGISTRY_TOKEN`