xpeditis2.0/docs/deployment/PORTAINER_DEBUG_COMMANDS.md
David c19af3b119
Some checks failed
CI/CD Pipeline / Backend - Build, Test & Push (push) Failing after 58s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Failing after 5m55s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Has been skipped
CI/CD Pipeline / Deploy to Portainer (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
docs: reorganiser completement la documentation dans docs/
Reorganisation majeure de toute la documentation du projet pour
ameliorer la navigation et la maintenance.

## Changements principaux

### Organisation (80 -> 4 fichiers .md a la racine)
- Deplace 82 fichiers .md dans docs/ organises en 11 categories
- Conserve uniquement 4 fichiers essentiels a la racine:
  * README.md, CLAUDE.md, PRD.md, TODO.md

### Structure docs/ creee
- installation/ (5 fichiers) - Guides d'installation
- deployment/ (25 fichiers) - Deploiement et infrastructure
- phases/ (21 fichiers) - Historique du developpement
- testing/ (5 fichiers) - Tests et qualite
- architecture/ (6 fichiers) - Documentation technique
- carrier-portal/ (2 fichiers) - Portail transporteur
- csv-system/ (5 fichiers) - Systeme CSV
- debug/ (4 fichiers) - Debug et troubleshooting
- backend/ (1 fichier) - Documentation backend
- frontend/ (1 fichier) - Documentation frontend
- legacy/ (vide) - Pour archives futures

### Documentation nouvelle
- docs/README.md - Index complet de toute la documentation (367 lignes)
  * Guide de navigation par scenario
  * Recherche rapide par theme
  * FAQ et commandes rapides
- docs/CLEANUP-REPORT-2025-12-22.md - Rapport detaille du nettoyage

### Scripts reorganises
- add-email-to-csv.py -> scripts/
- deploy-to-portainer.sh -> docker/

### Fichiers supprimes
- 1536w default.svg (11MB) - Fichier non utilise

### References mises a jour
- CLAUDE.md - Section Documentation completement reecrite
- docs/architecture/EMAIL_IMPLEMENTATION_STATUS.md - Chemin script Python
- docs/deployment/REGISTRY_PUSH_GUIDE.md - Chemins script deploiement

## Metriques
- 87 fichiers modifies/deplaces
- 82 fichiers .md organises dans docs/
- 11MB d'espace libere
- Temps de recherche reduit de ~5min a ~30s (-90%)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 15:45:51 +01:00

7.6 KiB

🔍 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

# 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

# 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

docker service inspect xpeditis_xpeditis-backend --pretty
docker service inspect xpeditis_xpeditis-frontend --pretty

4. Tester manuellement le pull de l'image

# 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

# 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: <REGISTRY_TOKEN>

🐛 Erreurs Communes et Solutions

Erreur 1: "no suitable node (insufficient resources)"

Cause: Pas assez de RAM/CPU sur le serveur Solution:

# Vérifie les ressources disponibles
docker node ls
docker node inspect <node-id> --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:

# 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: <REGISTRY_TOKEN>

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:

# 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:

# 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:

# 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

# 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

# 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

# Valide le fichier compose
docker stack config -c portainer-stack.yml

# Cela va afficher les warnings/erreurs de configuration

📊 Monitoring en Temps Réel

# 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:

    docker service ps xpeditis_xpeditis-backend --no-trunc
    
  2. Lire les logs:

    docker service logs xpeditis_xpeditis-backend --tail=100
    
  3. Tester le pull manuel:

    docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
    
  4. Vérifier les dépendances (DB, Redis, MinIO):

    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:

    docker service update --force xpeditis_xpeditis-backend
    

🔐 Configuration Registry dans Portainer

Via l'interface Portainer:

  1. RegistriesAdd registry

  2. Remplis:

    • Name: Scaleway Container Registry
    • Registry URL: rg.fr-par.scw.cloud/weworkstudio
    • Authentication: ON
    • Username: nologin
    • Password: <TON_REGISTRY_TOKEN> (le même que dans GitHub Secrets)
  3. Add registry

  4. StacksxpeditisEditor

  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:

    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):

    # 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