All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 5m45s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 28m26s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 14s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
4.2 KiB
4.2 KiB
⚡ Fix Rapide Portainer - Images Ne Montent Pas
🎯 Diagnostic
✅ Images ARM64 existent dans le registry (vérifié avec docker manifest inspect)
✅ CI/CD build correctement les images multi-architecture
✅ Stack Portainer correctement configuré
❌ Problème le plus probable : Registry credentials manquants
🔧 Solution Rapide (5 minutes)
Étape 1 : Login Docker sur le Serveur Portainer
# SSH sur votre serveur ARM64
ssh votre-serveur
# Login au registry Scaleway
docker login rg.fr-par.scw.cloud/weworkstudio
# Credentials :
Username: nologin
Password: [copier le token depuis https://console.scaleway.com/registry/namespaces]
Étape 2 : Test Pull Manuel
# Tester que ça marche
docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Devrait afficher :
# preprod: Pulling from weworkstudio/xpeditis-backend
# ...
# Status: Downloaded newer image for rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Vérifier que c'est ARM64
docker image inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod | grep Architecture
# Devrait afficher : "Architecture": "arm64" ✅
Étape 3 : Ajouter Registry dans Portainer (Interface Web)
- Portainer → Registries (menu gauche)
- Add registry
- Remplir :
- Name :
Scaleway - Registry URL :
rg.fr-par.scw.cloud/weworkstudio - Authentication : ✅ Activer
- Username :
nologin - Password :
[token Scaleway]
- Name :
- Add registry
Étape 4 : Update le Stack Portainer
- Portainer → Stacks → Votre stack Xpeditis
- Click Editor
- Copier tout le contenu de
docker/portainer-stack.yml(avecplatform: linux/arm64ajouté) - ✅ Cocher "Re-pull image and redeploy"
- Click Update the stack
Étape 5 : Vérifier les Logs
- Portainer → Containers
- Cliquer sur
xpeditis-backend - Logs
Logs attendus :
✅ PostgreSQL is ready
🔄 Running database migrations...
✅ Successfully ran X migration(s)
✅ Database migrations completed
🚀 Starting NestJS application...
[Nest] Application is running on: http://0.0.0.0:4000
🚨 Si Docker Swarm Mode
Si vous utilisez Docker Swarm (présence de deploy.placement.constraints dans le stack), vous devez login sur TOUS les nodes :
# Sur chaque node du swarm
docker login rg.fr-par.scw.cloud/weworkstudio
Vérifier les nodes :
docker node ls
# Tous doivent être READY
⚙️ Modifications Appliquées au Stack
Ajout de platform: linux/arm64 pour forcer la sélection ARM64 :
xpeditis-backend:
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
platform: linux/arm64 # ← AJOUTÉ
restart: unless-stopped
# ...
xpeditis-frontend:
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
platform: linux/arm64 # ← AJOUTÉ
restart: unless-stopped
# ...
Pourquoi ? : Garantit que Docker pull l'image ARM64 et non AMD64.
📊 Checklist Rapide
- SSH sur serveur Portainer
docker login rg.fr-par.scw.cloud/weworkstudio- Test :
docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod - Ajouter registry dans Portainer (Registries → Add registry)
- Copier le nouveau
portainer-stack.yml(avecplatform: linux/arm64) - Update stack avec "Re-pull image and redeploy"
- Vérifier logs :
✅ Database migrations completedpuis🚀 Starting NestJS application... - Tester API :
curl https://api.preprod.xpeditis.com/api/v1/health - Tester frontend :
https://app.preprod.xpeditis.com
🎯 Résumé du Problème
| Composant | Status |
|---|---|
| Images ARM64 dans registry | ✅ OK |
| CI/CD build multi-arch | ✅ OK |
| Stack configuration | ✅ OK |
| Registry credentials | ❌ MANQUANTS |
Solution : Ajouter credentials Scaleway dans Portainer + forcer platform: linux/arm64
ETA Fix : 5 minutes Impact : 🔴 Critique - Bloque déploiement Difficulté : ⚡ Facile - Configuration uniquement