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

Rootless Docker构建cryptography依赖时报github.com地址解析错误

问题原因

Rootless Docker默认使用slirp4netns用户态网络栈,与root模式的内核态bridge网络栈实现逻辑不同,容易出现DNS解析异常,你遇到的github.com域名解析失败就是该问题导致的。

解决方案

按实施优先级排序:

  • 方案1:跳过Rust编译(最快适配)
    在Dockerfile的ENV配置段新增环境变量CRYPTOGRAPHY_DONT_BUILD_RUST=1即可,无需修改其他配置,修改后的ENV段如下:

    ENV         LANG C.UTF-8
    ENV         CRYPTOGRAPHY_DONT_BUILD_RUST=1
    
  • 方案2:手动指定构建用DNS服务器
    执行构建命令时追加DNS参数,使用公共DNS服务器解析域名:

    docker build --dns 8.8.8.8 --dns 114.114.114.114 .
    
  • 方案3:配置cargo使用系统git拉取依赖
    在Dockerfile安装rust、cargo的RUN语句后,新增cargo配置:

    RUN         mkdir -p /root/.cargo \
                && echo "[net]" >> /root/.cargo/config \
                && echo "git-fetch-with-cli = true" >> /root/.cargo/config
    

    该配置可规避cargo内置git实现的网络兼容性问题。

  • 方案4:修复Rootless Docker基础网络配置

    1. 更新系统的slirp4netns软件包到最新版本
    2. 检查宿主机DNS配置文件的读取权限,确保当前运行Rootless Docker的普通用户可读取/etc/resolv.conf对应文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:15:04