xpeditis2.0/DOCKER_ARM64_FIX.md
David 2e5dcec05c
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
fix
2025-11-19 18:27:42 +01:00

146 lines
3.7 KiB
Markdown

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