xpeditis2.0/FIX_DOCKER_PROXY.md
David 6e3191b50e
All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 5m45s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 28m26s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 14s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
fix ci/cd and docker
2025-11-20 00:12:01 +01:00

154 lines
4.3 KiB
Markdown

# 🔧 Fix Docker Proxy Timeout
## 🚨 Problème Identifié
Docker est configuré avec un proxy qui timeout lors du push vers Scaleway :
```
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
```
Erreur lors du push :
```
proxyconnect tcp: dial tcp 192.168.65.1:3128: i/o timeout
```
## ✅ Solution 1 : Désactiver le Proxy (Recommandé)
### Sur Docker Desktop for Mac
1. **Ouvrir Docker Desktop**
2. **Settings (⚙️)****Resources****Proxies**
3. **Décocher "Manual proxy configuration"** ou mettre en "No proxy"
4. **Apply & Restart**
### Vérification
```bash
# Après redémarrage Docker
docker info | grep -i proxy
# Devrait afficher "No Proxy" ou rien
```
## ✅ Solution 2 : Ajouter Scaleway au No Proxy
Si vous avez besoin du proxy pour d'autres registries :
### Sur Docker Desktop for Mac
1. **Settings (⚙️)****Resources****Proxies**
2. Dans **"Bypass for these hosts & domains"**, ajouter :
```
*.scw.cloud
rg.fr-par.scw.cloud
scw-reg-prd-fr-par-distribution.s3.fr-par.scw.cloud
```
3. **Apply & Restart**
## ✅ Solution 3 : Configuration Manuelle (Avancé)
### Éditer le fichier de config Docker daemon
**Fichier** : `~/.docker/daemon.json` (créer si inexistant)
```json
{
"proxies": {
"http-proxy": "",
"https-proxy": "",
"no-proxy": "*.scw.cloud,*.docker.internal,localhost,127.0.0.1"
}
}
```
**Redémarrer Docker** :
```bash
# Via Docker Desktop menu → Restart
# Ou kill/restart le daemon
```
## 🧪 Test de la Solution
```bash
# 1. Vérifier que le proxy est désactivé ou contourne Scaleway
docker info | grep -i proxy
# 2. Essayer un push de test
docker tag xpeditis20-backend:latest rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:test
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:test
# Devrait afficher :
# ✅ Pushed
# ✅ test: digest: sha256:... size: ...
```
## 🔍 Comprendre le Problème
Le proxy `http.docker.internal:3128` était configuré mais :
- ❌ Ne répond pas (timeout)
- ❌ Bloque l'accès à Scaleway S3 (`scw-reg-prd-fr-par-distribution.s3.fr-par.scw.cloud`)
- ❌ Cause des timeouts I/O lors du push des layers Docker
**Symptômes** :
```
15826890db13: Pushed ✅ Layer pousse OK
1ea93cfbb3c8: Pushed ✅ Layer pousse OK
...
Head "https://scw-reg-prd-fr-par-distribution.s3.fr-par.scw.cloud/...":
proxyconnect tcp: dial tcp 192.168.65.1:3128: i/o timeout ❌ Timeout au moment du manifest
```
Les layers individuels passent, mais le **manifest final** (HEAD request) timeout via le proxy.
## 📊 Comparaison
| Configuration | Résultat |
|---------------|----------|
| Proxy activé (`http.docker.internal:3128`) | ❌ Timeout vers Scaleway S3 |
| Proxy désactivé | ✅ Push direct vers Scaleway |
| No Proxy avec `*.scw.cloud` | ✅ Bypass proxy pour Scaleway |
## ⚠️ Important pour CI/CD
**GitHub Actions n'a PAS ce problème** car les runners GitHub n'utilisent pas votre proxy local.
Donc :
- ❌ Push local peut échouer (proxy)
- ✅ CI/CD push fonctionnera (pas de proxy)
**Recommandation** : Désactiver le proxy localement pour le développement, ou laisser uniquement la CI/CD push les images.
## 🎯 Solution Rapide (Temporaire)
Si vous ne voulez pas toucher aux settings Docker :
```bash
# Désactiver proxy pour une commande
export HTTP_PROXY=""
export HTTPS_PROXY=""
export http_proxy=""
export https_proxy=""
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
```
**Limitation** : Ne fonctionne pas car le proxy est configuré au niveau du Docker daemon, pas au niveau de la session shell.
## ✅ Checklist de Fix
- [ ] Ouvrir Docker Desktop Settings
- [ ] Aller dans Resources → Proxies
- [ ] Désactiver "Manual proxy configuration" OU ajouter `*.scw.cloud` au bypass
- [ ] Apply & Restart Docker
- [ ] Vérifier : `docker info | grep -i proxy` (devrait être vide)
- [ ] Test push : `docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:test`
- [ ] ✅ Si push réussit, problème résolu !
---
**Date** : 2025-11-19
**Impact** : 🔴 Critique - Bloque push local vers Scaleway
**Fix** : ⚡ Rapide - 2 min via Docker Desktop settings