docker - 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
解决方案
如果您与主机有连接,只需添加到您的 docker-compose 文件中:
- network_mode: host
您将在容器内部拥有与主机相同的接口、端口等,而无需修改 resolv.conf
推荐阅读
- android - Android Studio App Inspector 不显示数据库
- javascript - 我想在浏览器关闭时删除 cookie,但在页面之间导航时保留它们。怎么做?
- memgraphdb - 如何将 Memgraph 数据持久化到本地硬盘?
- php - 在 wcfm 插件上添加 product_type
- powershell - Powershell FolderBrowserDialog 从 shell 到 ise 的行为不同
- python - 以品脱为单位测试单位等效性
- python - 使用正则表达式的 Python 文件搜索
- c++ - 需要帮助将成员函数用作 Boost Spirit QI 的操作
- angular - 根据另一个选择显示带有选项的选择元素
- node.js - firebase 可调用函数的返回值