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

Docker部署Python应用遇MariaDB Connector/C版本兼容问题

解决Docker部署Python应用时MariaDB版本不兼容问题

我基于python:3.11-slim-bullseye镜像编写了如下Dockerfile部署Python应用:

# syntax=docker/dockerfile:1
FROM python:3.11-slim-bullseye
EXPOSE 80
WORKDIR /app
RUN apt-get update && apt-get install -y
RUN apt install gcc libmariadb3 libmariadb-dev libmariadb-dev-compat -y
RUN pip install --upgrade pip
RUN pip install Flask Flask-SQLAlchemy flask-marshmallow marshmallow-sqlalchemy
RUN pip install mariadb==1.0.0
COPY ./back .
CMD [ "python3", "app.py"]

执行构建时遇到错误:
MariaDB Connector/Python requires MariaDB Connector/C >= 3.2.4, found version 3.1.16

尝试指定安装mariadb==1.0.0后,依然报错:
MariaDB Connector/Python requires MariaDB Connector/C >= 3.1.3, found version 3.1.16

参考相关方案后问题仍未解决,以下是可行的修复方案:


解决方案:通过MariaDB官方源安装兼容版本的Connector/C

python:3.11-slim-bullseye基于Debian 11(bullseye),默认软件源中的MariaDB Connector/C版本为3.1.16,无法满足Python包的版本要求。我们需要替换为MariaDB官方源来获取高版本依赖:

修改后的完整Dockerfile

# syntax=docker/dockerfile:1
FROM python:3.11-slim-bullseye
EXPOSE 80
WORKDIR /app

# 添加MariaDB官方仓库密钥与源,获取高版本Connector/C
RUN apt-get update && apt-get install -y gnupg2 curl
RUN curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash -s -- --mariadb-server-version=10.11

# 安装依赖包
RUN apt-get install -y gcc libmariadb3 libmariadb-dev libmariadb-dev-compat

RUN pip install --upgrade pip
RUN pip install Flask Flask-SQLAlchemy flask-marshmallow marshmallow-sqlalchemy
RUN pip install mariadb

COPY ./back .
CMD [ "python3", "app.py"]

关键说明

  • 选择10.11版本的MariaDB源,对应的Connector/C版本会满足>=3.2.4的要求
  • 先安装gnupg2和curl用于验证并添加官方源,避免源验证失败问题
  • 无需再指定mariadb==1.0.0,安装最新兼容版即可匹配高版本Connector/C

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:01:46