У меня Windows-10 с Docker 18.06.0-ce-win72 (19098).В нашей сети используется NTLM-прокси, поэтому докер выходит в Интернет через Ntlmaps (я тоже пытаюсь Cntlm , результат тот же).Я запускаю образ на основе php: 7.2-fpm с помощью docker-compose.Я вхожу в контекст
docker exec -it {id} bash
и запускаю команду:
curl https://packagist.org/packages.json // works!
или
wget https://packagist.org/packages.json // works!
Но
php -r "echo file_get_contents('https://packagist.org/packages.json');"
результаты " не удалось открыть поток: не удалось назначить запрошенный адрес в коде командной строки в строке 1"
curl https://packagist.org/packages.json ----> works
php -r "echo file_get_contents('https://packagist.org/packages.json');" ----------> fails to open stream
php -r "echo curl_exec(curl_init('https://packagist.org/packages.json'));" ---------> works
Я вижу ntlmaps-console и просматриваю запрос из" curl ", но в консоли нет запросов из"file_get_contents".
В php allow_url_open => on
Я обнаружил похожую проблему: https://github.com/composer/composer/issues/2169
Но яне могу отключить IPv6 в Docker для проверки решения.
Я пытаюсь запустить " sysctl ", но " bash: sysctl: команда не найдена "
Я пытаюсь установить
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
- net.ipv6.conf.default.disable_ipv6=1
- net.ipv6.conf.lo.disable_ipv6=1
в docker-compose.yml для обслуживания, но это не решает проблему.
Я запускаю этот контейнер на VPS и эту работу на VPS.
Как я могу решить эту проблему в Windows + NTLM?
Мой docker-compose.yml: https://pastebin.com/PfsgzrLs