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
154 lines
4.3 KiB
Markdown
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
|