【问题标题】:ddev behind corporate proxy公司代理背后的 ddev
【发布时间】:2019-06-25 14:38:08
【问题描述】:

我希望 ddev Web 容器使用我的公司代理设置。 否则,当我运行 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_PROXYHTTPS_PROXYNO_PROXY 传递给容器的方法,我该如何实现?

【问题讨论】:

    标签: proxy ddev


    【解决方案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 vars,小写和大写。

    有了这个,composer 有效,wget 有效。 apt 仍然不能在容器内工作,因为它仍然需要在 /etc/apt/apt.conf.d/20proxyconf 文件中进行代理设置,但它可以从 .ddev/web-build/Dockerfile 工作,我认为这就足够了 :)

    【讨论】:

    • 我不确定我们是否需要小写和大写,但看起来 wget 需要小写,尽管约定是 env vars 的大写...
    • 我会对任何使用 $http_proxy 或 $https_proxy 的东西感到惊讶。谢谢!
    猜你喜欢
    • 2019-08-29
    • 2019-03-24
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2015-06-20
    相关资源
    最近更新 更多