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

Docker构建时apt-get install反复出现Hash Sum mismatch错误求助

解决基于cityflowproject/cityflow镜像构建时APT Hash Sum mismatch问题

问题重现

基于cityflowproject/cityflow基础镜像构建Docker镜像时,执行RUN apt-get update && apt-get install -y ...步骤持续触发Hash Sum mismatch错误,日志示例:

E: Failed to fetch http://deb.debian.org/debian/pool/main/.. Hash Sum mismatch
期望文件的哈希值:

  • SHA256:...
    接收文件的哈希值:
  • SHA256:...(与期望不同)

已尝试禁用APT缓存、清理列表、添加代理异常配置、使用--no-cache构建等常规手段,问题仍未解决。

针对性解决方案

1. 更换国内Debian镜像源(推荐)

官方源的同步延迟或网络波动是哈希不匹配的常见原因,替换为国内镜像可大幅降低此类问题:

修改Dockerfile,在APT操作前替换源列表:

FROM cityflowproject/cityflow

# 替换为清华Debian镜像源(需匹配基础镜像的Debian版本,示例为bullseye)
RUN rm -f /etc/apt/sources.list && \
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" > /etc/apt/sources.list && \
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list && \
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free" >> /etc/apt/sources.list && \
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free" >> /etc/apt/sources.list

# 清理并安装依赖
RUN rm -rf /var/lib/apt/lists/* && \
    apt-get clean && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        cmake \
        git \
        libboost-all-dev && \
    rm -rf /var/lib/apt/lists/*

# 安装Python依赖
RUN pip install numpy torch matplotlib

注:若基础镜像Debian版本不是bullseye,可先执行docker run -it cityflowproject/cityflow cat /etc/debian_version查看版本,替换对应源(如buster、bookworm)。

2. 使用宿主机网络构建

Docker默认的网络隔离可能导致代理或DNS问题,使用宿主机网络构建可规避此类干扰:

docker build --network=host -t your-custom-image .

3. 临时忽略哈希校验(不推荐,仅应急)

若需快速验证构建流程,可在apt-get install时添加参数跳过哈希校验(降低安全性,不用于生产环境):

RUN rm -rf /var/lib/apt/lists/* && \
    apt-get clean && \
    apt-get update && \
    apt-get install -y --no-install-recommends --allow-unauthenticated \
        build-essential \
        cmake \
        git \
        libboost-all-dev && \
    rm -rf /var/lib/apt/lists/*

原因说明

Hash Sum mismatch通常由以下因素导致:

  • 官方Debian源的区域同步延迟,导致本地获取的包索引与实际包哈希不匹配
  • 网络传输过程中丢包或代理缓存污染,导致下载的包文件损坏
  • Docker网络隔离下的DNS解析异常,获取到错误的源节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:35:13