Я создаю контейнер docker, который должен использовать прокси-сервер при отправке HTTP-запросов. К сожалению, я не могу заставить его работать - я не могу аутентифицироваться на прокси-сервере изнутри контейнера, хотя учетные данные верны.
Ожидаемый результат
curl https://api.myip.com
возвращает ответ JSON с IP-адресом прокси-сервера.
Фактический результат:
curl https://api.myip.com
возвратcurl: (56) Received HTTP code 407 from proxy after CONNECT
Что я пробовал:
- настройка переменных окружения HTTP_PROXY (то же самое для окружения HTTPS)
- добавление строки «Acquire::http::Proxy» в /etc/apt/apt.conf (то же самое для 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