# 🔧 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