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

Dockerfile构建镜像时无法安装指定软件包求助

解决Ubuntu 18.04 Docker镜像中apt-get无法找到软件包的问题

问题描述

构建flask_objectdetection镜像时,执行命令docker build -t flask_objectdetection .,在运行apt-get install -y python3-pip python3-dev libsm6 libxext6 libxrender-dev libgl1-mesa-glx步骤时,所有指定软件包均提示无法找到,且apt-get update步骤被Docker缓存,没有重新执行。

问题根源

Ubuntu 18.04已停止官方支持(EOL),默认软件源已失效,导致apt-get update无法获取有效包列表;同时Docker缓存了旧的update结果,即使源有问题也不会重新拉取。

修复方案

方案1:替换Ubuntu 18.04归档源并合并指令

修改Dockerfile,替换为官方归档源,同时将apt-get update和install合并为一个RUN指令,避免缓存问题:

FROM ubuntu:18.04
RUN echo "deb http://old-releases.ubuntu.com/ubuntu/ bionic main restricted universe multiverse" > /etc/apt/sources.list && \
    echo "deb http://old-releases.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://old-releases.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
    apt-get update -y && \
    apt-get install -y python3-pip python3-dev libsm6 libxext6 libxrender-dev libgl1-mesa-glx
WORKDIR /code
COPY . /code

方案2:切换到长期支持的Python基础镜像

直接使用维护中的Python镜像(如Debian-based版本),默认已包含Python和pip,只需安装所需系统库:

FROM python:3.8-bullseye
RUN apt-get update -y && \
    apt-get install -y libsm6 libxext6 libxrender-dev libgl1-mesa-glx
WORKDIR /code
COPY . /code

方案3:清理缓存重新构建

执行构建时添加--no-cache参数,强制Docker重新执行所有步骤:

docker build --no-cache -t flask_objectdetection .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:22:58