Django over Docker未安装mysqlclient

时间:2018-12-19 16:04:09

标签: django docker docker-compose

我想将MySQL与Django集成,MySQL在Docker上运行,我将这样的配置通过Django连接到db docker:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'restaurant',
        'HOST': 'db',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': 'root',
        'default-character-set': 'utf8',
        'OPTIONS': {
            'init_command': 'SET default_storage_engine=INNODB',
        }
    }
}

但是,当Django尝试连接到mysql数据库时,会抛出此错误:

enter image description here

我尝试通过pip安装mysqlclient,但是出现此错误:

enter image description here

这些是docker-compose.dev.ymlDockerfile配置。

如果某人需要完整的代码,here您可以找到它,并用docker-compose -f docker-compose.dev.yml up --build对其进行测试。

谢谢:)。

2 个答案:

答案 0 :(得分:2)

mysqlclient具有本机依赖性,必须先安装本机依赖性,然后才能pip install。在docker中运行时,尤其是在高山中运行时,您可能想切换到使用mysql-connector-python,它是一个纯Python库,没有任何本地依赖项,例如mysqlclient。如果要使用mysql.connector.django,请更新您的需求文件并更新设置以使用mysql-connector-python

答案 1 :(得分:0)

另一个回应是添加:

RUN apk add --no-cache bash mariadb-dev mariadb-client mariadb-libs python3-dev build-base

在dockerfile上。