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

Docker构建Django项目镜像报错:mysql_config未找到

解决Docker部署Django时mysqlclient安装失败的问题

这个问题和requirements.txt无关,核心是你用的Alpine基础镜像缺少mysqlclient编译所需的系统依赖。mysqlclient安装时需要调用mysql_config工具,但Alpine默认没有预装相关组件,导致编译环节直接失败。

解决办法:修改Dockerfile,先安装系统依赖

在安装Python依赖前,通过apk安装编译mysqlclient必须的包:

# pull the official base image
FROM python:3.8.3-alpine

# set work directory
WORKDIR /usr/src/app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 安装mysqlclient编译依赖与编译工具
RUN apk update && apk add --no-cache mariadb-dev gcc musl-dev python3-dev

# install dependencies
RUN pip install --upgrade pip 
COPY ./requirements.txt /usr/src/app
RUN pip install -r requirements.txt

# 可选:清理冗余依赖与缓存,缩小镜像体积
RUN apk del gcc musl-dev python3-dev && rm -rf /var/cache/apk/*

# copy project
COPY . /usr/src/app

EXPOSE 8000

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

关键说明:

  • mariadb-dev:提供mysql_config工具,是mysqlclient编译的核心依赖
  • gcc、musl-dev、python3-dev:编译Python扩展包必需的编译工具与头文件
  • 最后清理依赖的步骤可省略,但能有效减小镜像体积

替代方案:换用Debian系Python镜像

如果不想折腾Alpine的编译依赖,可以换成python:3.8.3-slim这类Debian基础镜像,只需安装default-libmysqlclient-dev即可解决问题:

FROM python:3.8.3-slim

WORKDIR /usr/src/app

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN apt-get update && apt-get install -y --no-install-recommends default-libmysqlclient-dev && rm -rf /var/lib/apt/lists/*

RUN pip install --upgrade pip 
COPY ./requirements.txt /usr/src/app
RUN pip install -r requirements.txt

COPY . /usr/src/app

EXPOSE 8000

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 19:58:01