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

基于debian:12-slim的Python镜像构建时MySQL源apt update报404错误

解决Docker构建中MySQL源Bookworm版本404错误

问题背景

将基础镜像从基于Debian 11(Bullseye)的Python 3.8.16-slim切换为Debian 12(Bookworm)的Python 3.8.18-slim后,Dockerfile构建失败,核心错误为访问http://repo.mysql.com/apt/debian bookworm Release时返回404,原因是旧版本的mysql-apt-config未适配Debian 12的源配置。

解决方案

方案1:升级mysql-apt-config到支持Bookworm的版本

旧版本mysql-apt-config_0.8.22-1_all.deb不支持Debian 12,需替换为兼容Bookworm的新版本(如0.8.29-1及以上):

  1. 将新版本的mysql-apt-config_*.deb上传到S3路径s3://3rdparty-packages/
  2. 修改Dockerfile中的对应命令:
RUN aws s3 cp s3://3rdparty-packages/mysql-apt-config_0.8.29-1_all.deb . && \
  DEBIAN_FRONTEND=noninteractive dpkg -i mysql-apt-config_0.8.29-1_all.deb

方案2:直接使用Debian官方源的MySQL依赖

Debian Bookworm的官方源已包含default-libmysqlclient-dev,无需额外添加MySQL第三方源,可删除mysql-apt-config相关安装步骤:
修改后的Dockerfile片段:

FROM python:3.8.18-slim

RUN pip install awscli==1.19.29

# 无需再安装wget/lsb-release/gnupg,直接安装所需依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
      g++ \
      pkg-config \
      default-libmysqlclient-dev \
      libunistring-dev \
      libboost-all-dev \
      libboost-program-options-dev \
      libffi-dev \
      gcc automake autoconf libtool make \
    && rm -rf /var/lib/apt/lists/*
[...]

方案3:手动指定兼容的MySQL源版本

若必须使用MySQL官方源,可通过debconf预先配置为使用Bullseye的源(与Bookworm兼容):

RUN aws s3 cp s3://3rdparty-packages/mysql-apt-config_0.8.22-1_all.deb . && \
  # 预先配置源版本为bullseye
  echo "mysql-apt-config mysql-apt-config/repo-codename select bullseye" | debconf-set-selections && \
  echo "mysql-apt-config mysql-apt-config/select-server select mysql-8.0" | debconf-set-selections && \
  echo "mysql-apt-config mysql-apt-config/select-product select Ok" | debconf-set-selections && \
  DEBIAN_FRONTEND=noninteractive dpkg -i mysql-apt-config_0.8.22-1_all.deb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:56:29