Как создать docker-образ (без docker compose) приложения django и использовать существующий контейнер mysql
I have a "point of sales" application in Django that uses a mysql database.
I followed this Docker guide: Python getting started guide
Для настройки контейнера mysql я создал пару томов и его сеть:
docker volume create mysql
docker volume create mysql_config
docker network create mysqlnet
Мой Dockerfile выглядит так:
(я пока не хочу использовать docker-compose, потому что хочу изучить базы)
Dockerfile
# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
RUN apt update
RUN apt upgrade -y
RUN apt dist-upgrade
RUN apt-get install procps -y
RUN apt install curl -y
RUN apt install net-tools -y
WORKDIR /home/pos
COPY requirements.txt ./.
RUN pip3 install -r requirements.txt
COPY ./src ./src
CMD ["python", "./src/manage.py", "runserver", "0.0.0.0:8000"]
А в проекте Django мои настройки и требования к базе данных выглядят так:
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'point-of-sales',
'USER': 'root',
'PASSWORD': 'r00t',
'HOST': 'localhost',
'PORT': '3307'
}
}
requirements.txt
# Django
django>=3.1,<3.2
# DRF
djangorestframework>=3.12,<3.13
# Databases
mysqlclient
Что я хочу - это создать образ приложения Django, который я мог бы запустить и присоединить к сети mysql.
Проблема заключается в том, что я не могу собрать образ моего приложения django, потому что оно выдает следующую ошибку при попытке установить mysqlclient:
OSError: mysql_config not found
Посмотрев вокруг, я нашел другую тему, в которой предлагается установить mysql-config, который является другим пакетом, но я хочу держать все mysql изолированным в контейнере mysql.
Есть ли способ сделать это без использования docker-compose?