有很多公司设置了防火墙,要上互联网必须通过代理服务器。我有一个 dockerfile 需要使用 pip 安装 依赖的 python 模块,结果出现错误。我的 dockerfile 如下:
FROM python:3
WORKDIR /app
COPY py-solution/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY py-solution/. .
CMD [ "python", "./service.py" ]
每次构建 (build) 都能看到 pip 说找不到模块。
sudo docker build -t coin-trade .
原因就是容器内访问不了互联网,使用下面的命令加上 proxy 以后问题解决了:
sudo docker build -t coin-trade . --build-arg HTTP_PROXY=http://10.210.41.142:8080 --build-arg HTTPS_PROXY=http://10.210.41.142:8080
如果 pip 说连接不到 proxy 怎么办?
我加了 proxy 之后还遇到过 pip 说连不到 proxy,说 proxy 没有响应。测试的结果是 dockers 容器内部不能访问互联网。解决方案是重启 docker 服务
sudo systemctl restart docker