ddev за корпоративным прокси

Я хочу, чтобы веб-контейнер ddev использовал настройки моего корпоративного прокси. В противном случае, когда я запускаю composer diagnose, я получаю следующее:

uid_1000@d24b5fb17f37:/var/www/html$ composer diagnose
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: [Composer\Downloader\TransportException] The "http://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Connection timed out
Checking https connectivity to packagist: [Composer\Downloader\TransportException] The "https://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Connection timed out
Checking github.com rate limit: FAIL
[Composer\Downloader\TransportException] The "https://api.github.com/rate_limit" file could not be downloaded: failed to open stream: Connection timed out
Checking disk free space: OK
Checking pubkeys: 
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: 

  [Composer\Downloader\TransportException]                                                                          
  The "https://getcomposer.org/versions" file could not be downloaded: failed to open stream: Connection timed out  


diagnose

И я не могу правильно использовать композитор.

Мне нужен способ передать переменные среды HTTP_PROXY, HTTPS_PROXY и NO_PROXY в контейнер, как я могу этого добиться?


person wtfred    schedule 25.06.2019    source источник


Ответы (1)


Обновление:

Что ж, прочитав немного документации по docker, можно сказать, что существует способ правильно определить прокси... См. https://docs.docker.com/network/proxy/

Создав на хосте файл ~/.docker/config.json с

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://ip:port",
     "httpsProxy": "http://user:password@ip:port,
     "noProxy": "*.test.example.com,.example2.com"
   }
 }
}

затем ddev restart docker автоматически установит необходимые переменные ENV, строчные и прописные буквы.

При этом composer работает, wget работает. apt по-прежнему не работает внутри контейнера, потому что ему все еще нужны настройки прокси в /etc/apt/apt.conf.d/20proxyconf файле, но он работает из .ddev/web-build/Dockerfile, я думаю, этого достаточно :)

person wtfred    schedule 25.06.2019
comment
Я не уверен, нужны ли нам как строчные, так и прописные буквы, но похоже, что wget нужны строчные буквы, хотя по соглашению для env vars используется прописная буква... - person wtfred; 25.06.2019
comment
Я был бы удивлен, если бы что-нибудь использовало $http_proxy или $https_proxy. Спасибо за это! - person rfay; 25.06.2019