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

使用python:3.9-alpine3.14构建Django时找不到匹配Django版本

解决方案

1. 优先替换pip使用国内PyPI镜像源

绝大多数PyPI访问超时都是官方源跨境网络不稳定导致,替换为国内镜像源即可解决:

  • 临时指定源(直接修改Dockerfile中的pip安装命令即可):
    命令示例:
    /py/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn -r /requirements.txt
    
    可选的国内源还有阿里云镜像源https://mirrors.aliyun.com/pypi/simple/、中科大镜像源https://pypi.mirrors.ustc.edu.cn/simple/。
  • 全局配置源(后续所有pip操作都自动生效,适合镜像内有多次pip安装的场景):
    在Dockerfile的pip安装步骤前新增配置写入命令:
    RUN mkdir -p /root/.pip \
        && echo "[global]" > /root/.pip/pip.conf \
        && echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> /root/.pip/pip.conf \
        && echo "trusted-host = pypi.tuna.tsinghua.edu.cn" >> /root/.pip/pip.conf
    

2. 调整Docker构建网络配置

如果替换源后仍存在超时问题,排查Docker网络本身的问题:

  • 使用宿主机网络构建:Linux环境下给构建命令加--network host参数,直接复用宿主机网络栈,避免Docker默认桥接网络的DNS解析/转发损耗:
    docker-compose build --network host
    
    *注:该参数仅适配Linux环境Docker,Windows/Mac端Docker Desktop可直接在设置面板调整DNS、代理配置。
  • 修改Docker全局DNS:编辑/etc/docker/daemon.json添加公共DNS,解决域名解析超时问题:
    {
      "dns": ["114.114.114.114", "8.8.8.8"]
    }
    
    修改后执行systemctl restart docker重启Docker服务后再重新构建。

3. 调整pip超时参数

如果是网络波动导致的偶发超时,可给pip命令增加--timeout参数延长等待时长,示例:

/py/bin/pip install --timeout 120 -r /requirements.txt

4. 配置公网代理(仅适用于需要代理访问公网的环境)

如果宿主机需要走代理才能访问公网,可通过构建参数传入代理环境变量,避免硬编码代理地址:

  • 先在Dockerfile中声明构建参数:
    ARG HTTP_PROXY
    ARG HTTPS_PROXY
    
  • 构建时传入代理地址:
    docker-compose build --build-arg HTTP_PROXY=http://你的代理地址:端口 --build-arg HTTPS_PROXY=http://你的代理地址:端口
    

内容的提问来源于stack exchange,提问作者3therk1ll

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 09:03:04