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

Docker构建失败(exit code:100)求助:apt-get安装依赖报错

问题分析与解决方案

核心问题1:包管理器混用+冗余安装导致构建失败

你的基础镜像是python:3.8-slim(基于Debian系统),但存在两个关键错误:

  • 最后一行使用了Alpine专属的apk命令,Debian系统不支持该包管理器
  • apt-get install中重复安装了python3和python3-pip,而python:3.8-slim镜像已自带这些工具,同时python-dev是Python2的开发包,Debian系中Python3对应包名为python3-dev

核心问题2:容器持续重启的根源

原Dockerfile的CMD ["bash"]会导致容器启动后,bash进程因无交互立刻退出,Docker会不断尝试重启容器,这就是之前容器反复重启的原因。

修正后的Dockerfile

FROM python:3.8-slim

ENV PYTHONFAULTHANDLER=1
ENV PYTHONUNBUFFERED=1
ENV PYTHONHASHSEED=random
ENV PYTHONDONTWRITEBYTECODE 1
ENV PIP_NO_CACHE_DIR=off
ENV PIP_DISABLE_PIP_VERSION_CHECK=on
ENV PIP_DEFAULT_TIMEOUT=100

# 合并apt命令,清理缓存减少镜像体积,修正包名
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    python3-dev \
    build-essential \
    python3-venv \
    ffmpeg \
    linux-headers-amd64 && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN mkdir -p /code
ADD . /code
WORKDIR /code

RUN pip3 install -r requirements.txt

# 替换CMD,确保容器前台运行(如果是Python应用,替换为你的启动命令)
CMD ["tail", "-f", "/dev/null"]

关键修改说明

  1. 移除冗余依赖:删掉python3、python3-pip的安装命令,利用镜像自带工具
  2. 修正包名:把python-dev改为python3-dev,指定linux-headers-amd64适配x86_64架构
  3. 优化apt命令:合并update和install到一层,清理缓存缩小镜像体积
  4. 替换错误包管理器命令:用Debian系的apt-get安装linux-headers,删除无效的apk命令
  5. 修复容器重启:将CMD ["bash"]替换为tail -f /dev/null(保持容器前台运行),如果是Python应用,直接改为你的业务启动命令,比如CMD ["python", "app.py"]

后续验证

在Windows终端重新执行构建命令:

docker-compose --env-file config\config.env up --build

如果仍出现apt安装失败(exit code 100),可尝试:

  • 检查网络连接,确保容器能访问Debian软件源
  • 更换国内apt源,在apt-get update前添加:
    RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
    

内容的提问来源于stack exchange,提问作者timur.g

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:25:29