首页 > 解决方案 > Dockerfile 中的 wget over proxy 不起作用

问题描述

我有一台只能通过代理访问互联网的服务器。

所以我使用这个 docker-compose 命令:

docker-compose build --build-arg HTTP_PROXY=http://myproxy.server:3128 --build-arg HTTPS_PROXY=http://myproxy.server:3128 web

它开始下载 alpine-os 映像,执行诸如 apk add、从 Internet 获取之类的命令,这可以正常工作。

除了下载 wget 不起作用:

wget -O libiconv.tar.gz "https://ftp.gnu.org/pub/gnu/libiconv/libiconv-$LIBICONV_VERSION.tar.gz

错误:

Connecting to ftp.gnu.org (208.118.235.20:443)
wget: can't connect to remote host (208.118.235.20): Operation timed out

我尝试了许多变体,例如在 export https_proxy="" 中添加 .wgetrc 文件或向 wget 命令添加参数:wget -Y on

他们没有一个工作..

PS:带有 e 选项的 wget 不存在:

wget:无法识别的选项:e

标签: dockerproxydocker-composewget

解决方案


如果您与主机有连接,只需添加到您的 docker-compose 文件中:

- network_mode: host

您将在容器内部拥有与主机相同的接口、端口等,而无需修改 resolv.conf


推荐阅读