HTTP リクエストを送信するときにプロキシ サーバーを使用する Docker コンテナーを構築しています。残念ながら、これを動作させることができません。資格情報が正しいにもかかわらず、コンテナー内からプロキシに認証できません。
期待される結果は
curl https://api.myip.com
プロキシのIPを含むJSON応答を返します
実際の結果:
curl https://api.myip.com
リターンcurl: (56) Received HTTP code 407 from proxy after CONNECT
私が試したこと:
- HTTP_PROXY 環境変数の設定 (HTTPS 環境変数も同様)
- /etc/apt/apt.conf に「Acquire::http::Proxy」文字列を追加します (https の場合も同様)
- さまざまな設定を試しました(ENVのみ、apt.confファイルのみ、両方)
確認したこと:
- /etc/apt/apt.conf に必要な行が含まれている(下記参照)
- コンテナ内でENVが正しく設定されている
- プロキシはコンテナ外で正常に動作しています
- コンテナ外から実行されたブラウザ経由でプロキシ認証が正しく機能する(認証が成功する)
- docker ネットワークは正常に動作します (プロキシを使用しない場合は問題ありません)
私の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>/";
私の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 バージョン:
Docker version 20.10.8, build 3967b7d