You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04下Docker-ce构建应用时Flask安装失败求助

解决Docker构建时企业代理下pip安装依赖失败的问题

我之前在企业代理环境下用Docker构建Python应用时,也碰到过完全一样的pip安装Flask/Redis失败的问题,折腾了好一阵才搞定,给你几个实用的排查和解决步骤:

  • 先设置全局代理环境变量,而非仅在pip命令中指定
    很多时候仅在pip install后加--proxy参数不够稳定,尤其是旧版本的pip。建议在Dockerfile里先添加全局代理环境变量,让容器内所有网络请求都走代理:

    ENV http_proxy=http://10.70.52.146:3128
    ENV https_proxy=http://10.70.52.146:3128
    ENV no_proxy=localhost,127.0.0.1
    

    这样后续的pip、curl等工具都会自动使用代理,避免单独配置的遗漏。

  • 升级pip到最新版本
    Ubuntu 16.04对应的Python镜像里的pip版本通常比较老旧,对HTTPS代理和新的PyPI域名支持不佳。先升级pip再安装依赖能解决很多兼容性问题:

    RUN pip install --upgrade pip --proxy ${http_proxy} --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org
    RUN pip install -r requirements.txt --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org
    

    这里多加几个--trusted-host是因为现在PyPI的包分发域名不止pypi.python.org,旧版pip如果只信任这个域名,会导致从其他合法域名拉取包时失败。

  • 验证容器内代理的连通性
    先确认容器能不能正常访问代理服务器,在Dockerfile里加一个测试命令:

    RUN curl -v https://pypi.org --proxy ${http_proxy}
    

    如果curl失败,那问题大概率不在pip,而是以下几种情况:

    • 代理服务器的IP/端口写错了?仔细核对一下企业给出的代理配置
    • 企业防火墙限制了容器访问代理端口?需要联系运维确认容器所在网络能否访问代理地址
    • 代理需要用户名密码认证?如果是这种情况,代理地址要写成http://username:password@10.70.52.146:3128(注意如果密码有特殊字符需要URL编码)
  • 规范requirements.txt的格式
    虽然pip支持空格分隔包名,但旧版本的pip可能会解析出错,建议把每个包单独写一行:

    Flask
    Redis
    

完整修改后的Dockerfile示例

# 使用适配Ubuntu 16.04的Python基础镜像
FROM python:3.5

# 设置全局代理环境变量
ENV http_proxy=http://10.70.52.146:3128
ENV https_proxy=http://10.70.52.146:3128
ENV no_proxy=localhost,127.0.0.1

# 升级pip到稳定版本
RUN pip install --upgrade pip --proxy ${http_proxy} --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org

# 复制依赖清单到容器内
COPY requirements.txt /app/requirements.txt
WORKDIR /app

# 安装项目依赖
RUN pip install -r requirements.txt --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org

# 后续的应用构建步骤(比如复制代码、启动命令等)
# COPY . /app
# CMD ["python", "app.py"]

内容的提问来源于stack exchange,提问作者Utkarsh Sahai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:08:34