# 🔧 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)** : ```yaml # Avant platforms: linux/amd64 # Après platforms: linux/amd64,linux/arm64 ``` **Changement Frontend (ligne 141)** : ```yaml # 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 ```bash # 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 ```bash 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 : 1. Build l'image backend pour AMD64 + ARM64 2. Build l'image frontend pour AMD64 + ARM64 3. Push vers le registry Scaleway ### 4. Déployer sur Portainer ```yaml # 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 ``` 1. Copier le contenu de `docker/portainer-stack.yml` 2. Update stack dans Portainer 3. Cocher "Re-pull image and redeploy" 4. ✅ 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 ```bash # 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](ARM64_SUPPORT.md) - Documentation technique complète - [CICD_REGISTRY_SETUP.md](CICD_REGISTRY_SETUP.md) - Configuration CI/CD - [docker/portainer-stack.yml](docker/portainer-stack.yml) - Stack Portainer ## ✅ Checklist de Déploiement - [x] Modifier `.github/workflows/ci.yml` pour ARM64 - [x] Créer documentation ARM64_SUPPORT.md - [x] Mettre à jour CICD_REGISTRY_SETUP.md - [ ] Configurer secret `REGISTRY_TOKEN` sur GitHub - [ ] Push sur `preprod` pour 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