Docker Alpine:加载MySQLdb模块时出错

Zar3bski

我正在使用MariaDB构建Django应用程序的基于Alpine的映像,但我不知道应该添加哪个依赖项,以便我的应用程序可以正确连接到数据库。Dockerfile

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

好吧,我以为我做到了。从我在本文中的讨论中所看到的mariadb-devAlpine中等同default-libmysqlclient-dev基于Debian的系统。此外,Alpine中mysql-client包仅仅是一个伪包(包含mariadb-devmariadb-client等)。这是Dockerfile

# pull official base image
FROM python:3.7-alpine

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# set work directory
WORKDIR /usr/src/cms

# install mysqlclient
RUN apk update \
    && apk add --virtual build-deps gcc python3-dev musl-dev \
    && apk add --no-cache mariadb-dev\
    && apk del build-deps

# install dependencies
RUN pip install --upgrade pip
RUN pip install pipenv
COPY ./Pipfile /usr/src/cms/Pipfile
RUN pipenv install --skip-lock --system --dev

# copy entrypoint.sh
COPY ./entrypoint.sh /usr/src/cms/entrypoint.sh

# copy project
COPY . /usr/src/cms/

# run entrypoint.sh
ENTRYPOINT ["/usr/src/cms/entrypoint.sh"]

我尝试添加mariadb-client,改为使用mysql-client我也尝试添加RUN pip install django-mysql一切似乎都没有改变。我成功地构建了Postgres Django应用程序,没有任何问题,但是当涉及MySQl vs MariaDB // Debian vs Alpine时,我感到困惑。有见识吗?

瓦利亚诺

似乎您缺少MySQLdbPython模块,应该为其安装mysqlclientPython软件包:pip install mysqlclient

高山,PIP将建立mysqlclient从源头,所以你需要gccmusl-dev该设置步骤,因此你需要推迟apk del build-deps到安装Python模块之后。

修复了Dockerfile片段:

RUN apk update \
    && apk add --virtual build-deps gcc python3-dev musl-dev \
    && apk add --no-cache mariadb-dev

...

RUN pip install mysqlclient  

RUN apk del build-deps

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker:启动容器时出错:无法加载AUFS模块

加载MySQLdb模块和“ pip install MySQLdb”时出错

在 alpine docker 容器上运行 selenium 测试时出错

加载MySQLdb模块时出错:没有名为“ MySQLdb”的模块

django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错:没有名为“ MySQLdb”的模块

Python3 + MySql:加载MySQLdb模块时出错:没有名为“ MySQLdb”的模块

django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错:没有名为MySQLdb的模块

:加载MySQLdb模块时出错:没有名为MySQLdb的模块

Docker:在创建 dockerfile npm 包模块时出错

Django AWS Elastic Beanstalk错误配置不正确:加载MySQLdb模块时出错:没有名为MySQLdb的模块

在基于 Alpine Docker 的映像下运行 gitlab-ci.yml 脚本时出错

使用mysqldb模块创建表时出错

Docker加载内核模块

Django错误:django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错

加载MySQLdb模块时出错'您安装了mysqlclient还是MySQL-python?

从Docker映像创建Docker容器时出错

在Alpine Docker中安装Docker

Google App Engine SDK:配置不正确:加载MySQLdb模块时出错:没有名为_mysql的模块

执行docker ps时出错

运行Docker容器时出错

构建Nginx Docker时出错

执行 docker 镜像时出错

构建 docker 镜像时出错

使用docker run时出错

加载Scilab模块时出错

加载MySQLdb模块时出错:libmysqlclient.so.20:无法打开共享库文件:没有这样的文件或目录

在python alpine docker中安装python numpy模块

如何在Nginx Alpine Docker映像中启用本机模块

在 Docker 容器中加载共享库 libsqlite3.so.0 时出错