Я создаю Alpine изображение приложения Django с MariaDB , и я не могу понять, какую зависимость я должен добавить к своему Dockerfile
чтобы мое приложение могло правильно подключаться к БД.
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
Ну, я так и думал. Из того, что я прочитал в этой статье , в это обсуждение , mariadb-dev
в Alpine эквивалент default-libmysqlclient-dev
в Debian основанная система. Кроме того, пакет mysql-client в Alpine - просто фиктивный пакет (содержащий mariadb-dev , mariadb-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 против MariaDB // Debian против Alpine, я чувствую растерянность. Любое понимание?