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

Docker构建时RUN apt-get update执行失败,退出码100

问题分析

构建Docker镜像时apt-get update报错退出码100,核心原因是Ubuntu官方源的索引文件下载不完整,文件大小与哈希校验不匹配,大概率是网络访问不稳定或源镜像正在同步导致。同时你的Dockerfile存在可优化点,能降低这类问题的发生概率。

解决方案

1. 替换为国内Ubuntu源

在Dockerfile开头添加源替换步骤,用国内镜像(如阿里云)替代官方源,提升下载稳定性:

FROM ubuntu:latest as base

# 替换为阿里云Ubuntu源
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

# 合并apt命令,减少分层并清理缓存
RUN apt-get update && apt-get -y install --no-install-recommends \
    ssh \
    python3-pip \
    htop \
    libpq-dev \
    cmake \
    libopenmpi-dev \
    python3-dev \
    zlib1g-dev \
    libgl1-mesa-dev \
    && rm -rf /var/lib/apt/lists/*

RUN pip3 install --upgrade pip setuptools

RUN useradd -ms /bin/bash selfplay
USER selfplay
ENV PATH="/home/selfplay/.local/bin:${PATH}"
WORKDIR /app

COPY --chown=selfplay:selfplay ./app/requirements.txt /app
RUN pip3 install -r /app/requirements.txt --no-cache-dir

COPY --chown=selfplay:selfplay ./app .

ENV PYTHONIOENCODING=utf-8
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

CMD ["bash"]

2. 关键优化说明

  • 合并apt命令:将多次apt-get install合并为一个,仅执行一次apt-get update,避免重复更新索引;添加--no-install-recommends减少冗余依赖;最后清理/var/lib/apt/lists/*缩小镜像体积。
  • 修复ENV错误:原Dockerfile最后一行ENV export LANG=C.UTF-8写法错误,直接改为ENV LANG=C.UTF-8即可。
  • pip清理缓存:安装Python包时添加--no-cache-dir,避免缓存占用镜像空间。

3. 临时应急方案

  • 清理Docker构建缓存后重新构建:
    docker-compose build --no-cache
    
  • 检查本地网络连接,确保能正常访问Ubuntu源服务器,或切换网络环境后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:32:02