# 📋 Portainer Registry - Naming des Images

## 🎯 Question : Comment Nommer les Images dans le Stack ?

Quand vous ajoutez un registry dans Portainer, il y a **3 façons** de référencer les images dans votre stack.

---

## Option 1 : Chemin Complet (✅ RECOMMANDÉ - Fonctionne Toujours)

**Dans le stack** :
```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
```

**Avantages** :
- ✅ Fonctionne peu importe la configuration du registry dans Portainer
- ✅ Explicite et clair
- ✅ Pas d'ambiguïté

**Configuration Registry Portainer** (n'importe laquelle) :
- Name : `Scaleway`
- Registry URL : `rg.fr-par.scw.cloud` **OU** `rg.fr-par.scw.cloud/weworkstudio`
- Username : `nologin`
- Password : `[token]`

---

## Option 2 : Nom Court avec Namespace

**Configuration Registry Portainer** :
- Name : `Scaleway`
- Registry URL : `rg.fr-par.scw.cloud/weworkstudio` (avec le namespace)
- Username : `nologin`
- Password : `[token]`

**Dans le stack** :
```yaml
xpeditis-backend:
  image: xpeditis-backend:preprod

xpeditis-frontend:
  image: xpeditis-frontend:preprod
```

Portainer va automatiquement préfixer avec `rg.fr-par.scw.cloud/weworkstudio/`.

---

## Option 3 : Nom avec Namespace Partiel

**Configuration Registry Portainer** :
- Name : `Scaleway`
- Registry URL : `rg.fr-par.scw.cloud` (sans le namespace)
- Username : `nologin`
- Password : `[token]`

**Dans le stack** :
```yaml
xpeditis-backend:
  image: weworkstudio/xpeditis-backend:preprod

xpeditis-frontend:
  image: weworkstudio/xpeditis-frontend:preprod
```

Portainer va automatiquement préfixer avec `rg.fr-par.scw.cloud/`.

---

## 🔍 Comment Savoir Quelle Option Utiliser ?

### Méthode 1 : Vérifier la Configuration du Registry dans Portainer

1. **Portainer** → **Registries**
2. Trouver votre registry Scaleway
3. Regarder le champ **"Registry URL"**

**Si vous voyez** :
- `rg.fr-par.scw.cloud/weworkstudio` → Utilisez **Option 2** (nom court : `xpeditis-backend:preprod`)
- `rg.fr-par.scw.cloud` → Utilisez **Option 3** (avec namespace : `weworkstudio/xpeditis-backend:preprod`)
- Pas sûr ? → Utilisez **Option 1** (chemin complet, fonctionne toujours)

---

## 📊 Tableau de Décision

| Registry URL dans Portainer | Image dans Stack | Exemple |
|------------------------------|------------------|---------|
| `rg.fr-par.scw.cloud/weworkstudio` | `xpeditis-backend:preprod` | Option 2 |
| `rg.fr-par.scw.cloud` | `weworkstudio/xpeditis-backend:preprod` | Option 3 |
| N'importe lequel | `rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod` | Option 1 (recommandé) |

---

## ✅ Configuration Actuelle (Recommandée)

**Fichier** : `docker/portainer-stack.yml`

```yaml
xpeditis-backend:
  image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
  platform: linux/arm64
  restart: unless-stopped
  # ...

xpeditis-frontend:
  image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
  platform: linux/arm64
  restart: unless-stopped
  # ...
```

**Pourquoi ?** : Chemin complet, fonctionne peu importe la configuration du registry dans Portainer.

---

## 🧪 Test pour Vérifier

### Sur le Serveur Portainer

```bash
# Test avec le nom complet (devrait toujours marcher si registry configuré)
docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod

# Si erreur "access denied" → Le registry n'est pas correctement configuré ou credentials invalides
# Si succès → Le registry fonctionne ✅
```

### Vérifier que Portainer Utilise le Registry

1. Update le stack avec le nouveau YAML
2. Regarder les logs de déploiement Portainer
3. Devrait voir :
   ```
   Pulling xpeditis-backend (rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod)...
   preprod: Pulling from weworkstudio/xpeditis-backend
   ...
   Status: Downloaded newer image
   ```

---

## ⚠️ Erreurs Courantes

### Erreur 1 : "repository does not exist or may require 'docker login'"

**Cause** : Registry credentials pas configurés ou invalides dans Portainer.

**Solution** :
1. Portainer → Registries → Votre registry Scaleway
2. Vérifier username (`nologin`) et password (token Scaleway)
3. Ou faire `docker login` sur le serveur

---

### Erreur 2 : "manifest unknown"

**Cause** : Le tag n'existe pas dans le registry.

**Vérification** :
```bash
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
```

Si erreur → Le tag n'existe pas, vérifier que la CI/CD a bien push les images.

---

### Erreur 3 : "no matching manifest for linux/arm64"

**Cause** : L'image existe mais pas en ARM64.

**Solution** : Vérifier que la CI/CD build bien en multi-architecture (déjà fait ✅).

---

## 🎯 Recommandation Finale

**Utilisez le chemin complet** : `rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod`

**Avantages** :
- ✅ Fonctionne toujours
- ✅ Pas besoin de deviner la configuration du registry
- ✅ Explicite et debuggable
- ✅ Portable entre environnements

---

**Date** : 2025-11-19
**Configuration Actuelle** : Chemin complet avec `platform: linux/arm64`
**Status** : ✅ Prêt pour déploiement
