Ich baue einen Docker-Container, der beim Senden von HTTP-Anfragen einen Proxyserver verwenden soll. Leider gelingt es mir nicht, ihn zum Laufen zu bringen – ich kann mich innerhalb des Containers nicht beim Proxy authentifizieren, obwohl die Anmeldeinformationen korrekt sind.
Das erwartete Ergebnis
curl https://api.myip.com
gibt eine JSON-Antwort mit der IP des Proxys zurück.
Tatsächliches Ergebnis:
curl https://api.myip.com
Renditencurl: (56) Received HTTP code 407 from proxy after CONNECT
Was ich versucht habe:
- Festlegen von HTTP_PROXY-Umgebungsvariablen (dasselbe gilt für die HTTPS-Umgebung)
- Hinzufügen der Zeichenfolge „Acquire::http::Proxy“ zu /etc/apt/apt.conf (dasselbe gilt für https)
- verschiedene Konfigurationen probiert (nur ENV, nur apt.conf-Datei, beides)
Was ich überprüft habe:
- /etc/apt/apt.conf enthält die gewünschten Zeilen (siehe unten)
- ENVs werden im Container korrekt eingestellt
- Proxy funktioniert außerhalb des Containers ordnungsgemäß
- Die Proxy-Authentifizierung funktioniert ordnungsgemäß (Autorisierung erfolgreich) über einen Browser, der von außerhalb des Containers ausgeführt wird
- Docker-Netzwerk funktioniert ordnungsgemäß (keine Probleme, wenn kein Proxy verwendet wird)
meine apt.conf:
Acquire::http::Proxy "http://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::https::Proxy "https://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::socks::Proxy "socks://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
mein Dockerfile:
from ubuntu:latest
COPY ./rss/apt.conf /apt.conf
ENV HTTP_PROXY=<ip>:<port>
ENV HTTPS_PROXY=<ip>:<port>
RUN apt update && apt install -y curl
RUN cat /apt.conf >> /etc/apt/apt.conf
ENTRYPOINT ["sleep","1000"]
Docker-Version:
Docker version 20.10.8, build 3967b7d