Docker Alpine: ошибка при загрузке модуля MySQLdb

Zar3bski

Я создаю образ приложения Django на базе Alpine с 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, я чувствую себя смущенным. Любое понимание?

Valiano

Похоже , вы пропустили MySQLdbмодуль Python, для которого необходимо установить mysqlclientпакет Python: pip install mysqlclient.

В Alpine pip будет собираться mysqlclientиз исходного кода, поэтому вам понадобится gccи musl-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 Alpine выполнить команду от имени другого пользователя

Запуск оболочки в контейнере Docker Alpine

Установка и использование переменной среды в docker alpine в одной строке в оболочке

Почему на первом этапе создания образа контейнера Docker в качестве источника используется базовый образ, который, как мне кажется, представляет собой операционную систему, подобную ALPINE?

«Каталог или файл не существует» при клонировании репо и перемещении файлов в alpine docker на кубернетах

Не удается запустить приложение в контейнере alpine docker

Как я могу установить Docker внутри контейнера alpine?

Ошибка при запуске теста на селен в контейнере alpine docker

Как добавить доверенный корневой ЦС в Docker alpine

Docker / alpine: как установить nodeJS 4.8.4 на образ alpine

Установите Docker в Alpine Docker

Как создать статический двоичный файл Go для образа Docker Alpine?

Как установить драйверы ODBC для MariaDB в Docker / Alpine

Как запустить электрон в образе alpine docker с помощью Testcafe?

Установка OpenSSH на контейнер Alpine Docker

Запуск OpenSSH в контейнере Alpine Docker

Как запустить сценарий Bash в контейнере Alpine Docker?

Как заменить вывод команды в строку и добавить ее в файл (в Alpine Linux, работающем в Docker)

пакеты apk python не устанавливаются в образе Alpine Docker

Installing pyarrow in alpine docker

ОШИБКА: невыполнимые ограничения при установке PostGIS на образ Alpine Docker

Как развернуть веб-приложение Laravel в Alpine Linux с помощью Docker?

Установите драйвер ODBC в контейнер Alpine Linux Docker

Установка NumPy на Docker Alpine

Установленный бинарный файл Go не найден в пути на Alpine Linux Docker

Ошибка [Not Found] в контейнере Alpine Docker, хотя она, безусловно, существует

Docker - контейнер Alpine Elixir имеет неудовлетворительные ограничения

Docker построить php на образе alpine с поддержкой curl не удалось. Как я могу это решить?

Установка ImageMagick в Docker Alpine

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    How to click an array of links in puppeteer?

  6. 6

    Merging legends in plotly subplot

  7. 7

    ViewPager2 мигает / перезагружается при смахивании

  8. 8

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  9. 9

    How to normalize different curves drawn with geom = "step" when using stat_summary

  10. 10

    无法通过Vue在传单中加载pixiOverlay

  11. 11

    как я могу удалить vue cli 2?

  12. 12

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  13. 13

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  14. 14

    Elasticsearch - Нечеткий поиск не дает предложения

  15. 15

    Single legend for Plotly subplot for line plots created from two data frames in R

  16. 16

    Описание моего типа Parser как серии преобразователей монад

  17. 17

    Как изменить цвета запятых и скобок в VS Code

  18. 18

    Сброс значения <input type = "time"> в Firefox

  19. 19

    Почему прокси в vue.config.js 404

  20. 20

    Как установить параметр -noverify с gradle ktx для робоэлектрических тестов Android?

  21. 21

    В чем разница между ifstream, ofstream и fstream?

популярныйтег

файл