xpeditis2.0/docs/deployment/REGISTRY_PUSH_GUIDE.md
David c19af3b119
Some checks failed
CI/CD Pipeline / Backend - Build, Test & Push (push) Failing after 58s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Failing after 5m55s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Has been skipped
CI/CD Pipeline / Deploy to Portainer (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
docs: reorganiser completement la documentation dans docs/
Reorganisation majeure de toute la documentation du projet pour
ameliorer la navigation et la maintenance.

## Changements principaux

### Organisation (80 -> 4 fichiers .md a la racine)
- Deplace 82 fichiers .md dans docs/ organises en 11 categories
- Conserve uniquement 4 fichiers essentiels a la racine:
  * README.md, CLAUDE.md, PRD.md, TODO.md

### Structure docs/ creee
- installation/ (5 fichiers) - Guides d'installation
- deployment/ (25 fichiers) - Deploiement et infrastructure
- phases/ (21 fichiers) - Historique du developpement
- testing/ (5 fichiers) - Tests et qualite
- architecture/ (6 fichiers) - Documentation technique
- carrier-portal/ (2 fichiers) - Portail transporteur
- csv-system/ (5 fichiers) - Systeme CSV
- debug/ (4 fichiers) - Debug et troubleshooting
- backend/ (1 fichier) - Documentation backend
- frontend/ (1 fichier) - Documentation frontend
- legacy/ (vide) - Pour archives futures

### Documentation nouvelle
- docs/README.md - Index complet de toute la documentation (367 lignes)
  * Guide de navigation par scenario
  * Recherche rapide par theme
  * FAQ et commandes rapides
- docs/CLEANUP-REPORT-2025-12-22.md - Rapport detaille du nettoyage

### Scripts reorganises
- add-email-to-csv.py -> scripts/
- deploy-to-portainer.sh -> docker/

### Fichiers supprimes
- 1536w default.svg (11MB) - Fichier non utilise

### References mises a jour
- CLAUDE.md - Section Documentation completement reecrite
- docs/architecture/EMAIL_IMPLEMENTATION_STATUS.md - Chemin script Python
- docs/deployment/REGISTRY_PUSH_GUIDE.md - Chemins script deploiement

## Metriques
- 87 fichiers modifies/deplaces
- 82 fichiers .md organises dans docs/
- 11MB d'espace libere
- Temps de recherche reduit de ~5min a ~30s (-90%)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 15:45:51 +01:00

341 lines
8.1 KiB
Markdown

# 🚀 Guide Push Images vers Registry Scaleway
## ❌ Problème
Portainer ne peut pas pull les images car elles n'existent pas dans le registry Scaleway :
- `rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod`
- `rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod`
## 📋 Checklist Avant de Push
- [ ] Docker Desktop est démarré
- [ ] Vous avez accès au registry Scaleway
- [ ] Les images locales sont à jour avec les dernières modifications
---
## 🔧 Solution Étape par Étape
### Étape 1 : Login au Registry Scaleway
```bash
# Login avec les credentials Scaleway
docker login rg.fr-par.scw.cloud/weworkstudio
# Vous serez invité à entrer :
# Username: <votre_username_scaleway>
# Password: <votre_token_scaleway>
```
**Si vous n'avez pas les credentials** :
1. Aller sur [console.scaleway.com](https://console.scaleway.com)
2. Container Registry → weworkstudio
3. Generate API token
4. Copier le token
---
### Étape 2 : Build Backend avec le bon tag
```bash
# Se positionner dans le dossier backend
cd apps/backend
# Build l'image avec le tag Scaleway
docker build \
--platform linux/amd64 \
-t rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod \
.
# Vérifier que l'image est créée
docker images | grep xpeditis-backend
# Devrait afficher :
# rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend preprod <IMAGE_ID> <TIME> 337MB
```
⏱️ **Temps estimé** : 2-3 minutes
---
### Étape 3 : Push Backend vers Registry
```bash
# Push l'image backend
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Vous devriez voir :
# The push refers to repository [rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend]
# preprod: digest: sha256:... size: ...
```
⏱️ **Temps estimé** : 3-5 minutes (selon connexion)
---
### Étape 4 : Build Frontend avec le bon tag
```bash
# Retour à la racine
cd ../..
# Se positionner dans le dossier frontend
cd apps/frontend
# Build l'image avec le tag Scaleway
docker build \
--platform linux/amd64 \
-t rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod \
.
# Vérifier que l'image est créée
docker images | grep xpeditis-frontend
# Devrait afficher :
# rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend preprod <IMAGE_ID> <TIME> 165MB
```
⏱️ **Temps estimé** : 2-3 minutes
---
### Étape 5 : Push Frontend vers Registry
```bash
# Push l'image frontend
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
# Vous devriez voir :
# The push refers to repository [rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend]
# preprod: digest: sha256:... size: ...
```
⏱️ **Temps estimé** : 2-3 minutes
---
### Étape 6 : Vérifier sur Scaleway Console
1. Aller sur [console.scaleway.com](https://console.scaleway.com)
2. Container Registry → weworkstudio
3. Vérifier que vous voyez :
-`xpeditis-backend:preprod`
-`xpeditis-frontend:preprod`
---
## 🤖 Utilisation du Script Automatisé
**Option recommandée** : Utiliser le script fourni
```bash
# Rendre le script exécutable
chmod +x docker/deploy-to-portainer.sh
# Option 1 : Build et push tout
./docker/deploy-to-portainer.sh all
# Option 2 : Backend seulement
./docker/deploy-to-portainer.sh backend
# Option 3 : Frontend seulement
./docker/deploy-to-portainer.sh frontend
```
Le script fait automatiquement :
1. ✅ Vérifie que Docker est démarré
2. 🔨 Build les images avec le bon tag
3. 📤 Push vers le registry
4. 📋 Affiche un résumé
---
## 🔍 Vérification des Images sur le Registry
### Via Docker CLI
```bash
# Vérifier que l'image backend existe
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Vérifier que l'image frontend existe
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
# Si les commandes retournent un JSON, les images existent ✅
# Si erreur "manifest unknown", les images n'existent pas ❌
```
### Via Scaleway Console
1. Console Scaleway → Container Registry
2. Sélectionner `weworkstudio`
3. Chercher `xpeditis-backend` et `xpeditis-frontend`
4. Vérifier le tag `preprod`
---
## ⚠️ Erreurs Courantes
### Erreur 1 : "denied: requested access to the resource is denied"
**Cause** : Pas authentifié au registry
**Solution** :
```bash
docker login rg.fr-par.scw.cloud/weworkstudio
# Entrer username et token Scaleway
```
---
### Erreur 2 : "no such host"
**Cause** : URL du registry incorrecte
**Solution** : Vérifier l'URL exacte dans la console Scaleway
---
### Erreur 3 : "server gave HTTP response to HTTPS client"
**Cause** : Docker essaie d'utiliser HTTP au lieu de HTTPS
**Solution** :
```bash
# Vérifier que le registry est en HTTPS
# Le registry Scaleway utilise toujours HTTPS
# Vérifier votre configuration Docker
```
---
### Erreur 4 : Build échoue avec "no space left on device"
**Cause** : Pas assez d'espace disque
**Solution** :
```bash
# Nettoyer les images inutilisées
docker system prune -a
# Vérifier l'espace disponible
docker system df
```
---
## 🎯 Après le Push
Une fois les images pushées :
1. **Aller sur Portainer** : https://portainer.weworkstudio.com
2. **Stacks**`xpeditis-preprod`
3. Cliquer sur **Editor**
4. Vérifier que le YAML contient :
```yaml
xpeditis-backend:
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
xpeditis-frontend:
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
```
5. Cocher **✅ Re-pull image and redeploy**
6. Cliquer **Update the stack**
---
## 📊 Résumé des Commandes
### Build et Push - Version Complète
```bash
# 1. Login
docker login rg.fr-par.scw.cloud/weworkstudio
# 2. Backend
cd apps/backend
docker build --platform linux/amd64 -t rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod .
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# 3. Frontend
cd ../frontend
docker build --platform linux/amd64 -t rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod .
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
# 4. Vérification
cd ../..
docker images | grep rg.fr-par.scw.cloud
```
### Build et Push - Version Script
```bash
# Plus simple et recommandé
chmod +x docker/deploy-to-portainer.sh
./docker/deploy-to-portainer.sh all
```
---
## 🔐 Sécurité
### Token Scaleway
**Ne jamais** commit ou partager votre token Scaleway !
Le token doit être stocké :
- ✅ Dans Docker credentials (après `docker login`)
- ✅ Dans un gestionnaire de mots de passe
- ❌ PAS dans Git
- ❌ PAS en clair dans un fichier
### Rotation des Tokens
Recommandé de changer le token tous les 90 jours :
1. Console Scaleway → API Tokens
2. Révoquer l'ancien token
3. Créer un nouveau token
4. Faire un nouveau `docker login`
---
## 📞 Besoin d'Aide ?
Si les images ne peuvent toujours pas être pullées après ces étapes :
1. **Vérifier les logs Portainer** :
- Stacks → xpeditis-preprod → Logs
- Chercher "manifest unknown" ou "access denied"
2. **Vérifier les permissions** :
- Console Scaleway → IAM
- Vérifier que votre compte a accès au registry
3. **Tester manuellement** :
```bash
# Sur votre machine
docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Si ça fonctionne localement mais pas sur Portainer,
# le problème vient de l'accès de Portainer au registry
```
---
## ✅ Checklist Finale
Avant de dire que c'est résolu :
- [ ] `docker login` réussi
- [ ] Images backend et frontend buildées
- [ ] Images pushées vers le registry Scaleway
- [ ] Images visibles sur console.scaleway.com
- [ ] `docker manifest inspect` retourne du JSON (pas d'erreur)
- [ ] Portainer peut pull les images (pas d'erreur dans les logs)
---
**Date** : 2025-11-19
**Version** : 1.0
**Statut** : Guide complet pour résoudre les problèmes de pull