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
341 lines
8.0 KiB
Markdown
341 lines
8.0 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 deploy-to-portainer.sh
|
|
|
|
# Option 1 : Build et push tout
|
|
./deploy-to-portainer.sh all
|
|
|
|
# Option 2 : Backend seulement
|
|
./deploy-to-portainer.sh backend
|
|
|
|
# Option 3 : Frontend seulement
|
|
./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 deploy-to-portainer.sh
|
|
./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
|