All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 6m17s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 14m45s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 2s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 2s
3.7 KiB
3.7 KiB
🔧 Fix Critique : Support ARM64 pour Portainer
🚨 Problème Identifié
Votre serveur Portainer tourne sur architecture ARM64, mais la CI/CD buildait uniquement des images AMD64, causant des erreurs :
ERROR: no matching manifest for linux/arm64/v8
✅ Solution Implémentée
Modification de .github/workflows/ci.yml
Changement Backend (ligne 73) :
# Avant
platforms: linux/amd64
# Après
platforms: linux/amd64,linux/arm64
Changement Frontend (ligne 141) :
# Avant
platforms: linux/amd64
# Après
platforms: linux/amd64,linux/arm64
📦 Résultat
Les images Docker sont maintenant multi-architecture et fonctionnent sur :
- ✅ Serveurs AMD64 (x86_64) - Cloud classique
- ✅ Serveurs ARM64 (aarch64) - Raspberry Pi, Apple Silicon, serveurs ARM
Docker/Portainer détecte automatiquement l'architecture du serveur et pull la bonne image.
🚀 Prochaines Étapes
1. Configurer GitHub Secret
# Sur Scaleway Console
1. Container Registry → weworkstudio → Push/Pull credentials
2. Copier le token
# Sur GitHub
1. Settings → Secrets → Actions → New repository secret
2. Name: REGISTRY_TOKEN
3. Value: [coller le token Scaleway]
2. Commit et Push
git add .
git commit -m "feat: add ARM64 support for multi-architecture Docker builds"
git push origin preprod
3. Attendre la CI/CD (~10-15 min)
GitHub Actions va :
- Build l'image backend pour AMD64 + ARM64
- Build l'image frontend pour AMD64 + ARM64
- Push vers le registry Scaleway
4. Déployer sur Portainer
# Portainer Stack (déjà configuré dans docker/portainer-stack.yml)
xpeditis-backend:
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# ✅ Pull automatiquement l'image ARM64
xpeditis-frontend:
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
# ✅ Pull automatiquement l'image ARM64
- Copier le contenu de
docker/portainer-stack.yml - Update stack dans Portainer
- Cocher "Re-pull image and redeploy"
- ✅ Déploiement réussi !
📊 Impact
| Métrique | Avant | Après |
|---|---|---|
| Architectures supportées | AMD64 uniquement | AMD64 + ARM64 |
| Compatible serveur ARM | ❌ Non | ✅ Oui |
| Temps de build CI/CD | ~7 min | ~15 min |
| Taille registry | 1x | 2x (manifest) |
🔍 Vérification
# Vérifier que les deux architectures sont disponibles
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Output attendu :
{
"manifests": [
{
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"platform": {
"architecture": "arm64",
"os": "linux"
}
}
]
}
📚 Documentation Complète
- ARM64_SUPPORT.md - Documentation technique complète
- CICD_REGISTRY_SETUP.md - Configuration CI/CD
- docker/portainer-stack.yml - Stack Portainer
✅ Checklist de Déploiement
- Modifier
.github/workflows/ci.ymlpour ARM64 - Créer documentation ARM64_SUPPORT.md
- Mettre à jour CICD_REGISTRY_SETUP.md
- Configurer secret
REGISTRY_TOKENsur GitHub - Push sur
preprodpour trigger CI/CD - Vérifier build réussi sur GitHub Actions
- Vérifier images dans Scaleway Registry
- Update stack Portainer
- Vérifier déploiement réussi
Date : 2025-11-19 Status : ✅ Fix implémenté, prêt pour déploiement Impact : 🎯 Critique - Résout incompatibilité architecture