fix: simplify Docker image tags to only use branch name
All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 2m34s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 11m30s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 2m34s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 11m30s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
- Remove SHA-based tags (preprod-<sha>) - Remove semver and PR tags - Keep only branch-based tag (preprod) - Keep latest tag for default branch - Add Portainer debugging documentation This ensures Portainer always pulls the stable branch tag instead of commit-specific tags.
This commit is contained in:
parent
f9b1625e20
commit
2505a36b13
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@ -58,10 +58,6 @@ jobs:
|
||||
images: ${{ env.REGISTRY }}/xpeditis-backend
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=ref,event=pr
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=sha,prefix={{branch}}-
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
|
||||
- name: Build and push Backend Docker image
|
||||
@ -130,10 +126,6 @@ jobs:
|
||||
images: ${{ env.REGISTRY }}/xpeditis-frontend
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=ref,event=pr
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=sha,prefix={{branch}}-
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
|
||||
- name: Build and push Frontend Docker image
|
||||
|
||||
291
PORTAINER_DEBUG_COMMANDS.md
Normal file
291
PORTAINER_DEBUG_COMMANDS.md
Normal file
@ -0,0 +1,291 @@
|
||||
# 🔍 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: <REGISTRY_TOKEN>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐛 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 <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**:
|
||||
```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: <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**:
|
||||
```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**: `<TON_REGISTRY_TOKEN>` (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`
|
||||
Loading…
Reference in New Issue
Block a user