Django.db.utils.OperationalError: (2005, "Неизвестный хост сервера 'db' (11001)")
Я пытаюсь создать суперпользователя для моего приложения django с помощью python manage.py createsuperuser
, но получаю сообщение об ошибке. Я использую docker для своего приложения вместе с pipenv, и соединение устанавливается всякий раз, когда я запускаю docker compose up -d --build
как для приложения, так и для базы данных. Однако вот какую ошибку я получаю, когда запускаю python manage.py createsuperuser
после выполнения предыдущей команды:
docker-compose.yml:
services:
mlaas:
image: mlaas
build:
context: .
dockerfile: Dockerfile
restart: always
ports:
- "8000:8000"
volumes:
- .:/app
depends_on:
- db
entrypoint: ["./mlaas-entrypoint.sh"]
db:
image: mysql:8.0-debian
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: mysql-root
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: prediction_db
restart: always
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Dockerfile:
FROM python:3.10-slim
WORKDIR /app
RUN apt-get update && apt-get install -y build-essential default-libmysqlclient-dev
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
Я могу открыть веб-приложение и вижу действительное подключение к базе данных, но продолжаю получать эту ошибку для различных manage.py
команд.
У меня есть сценарий ожидания для базы данных, а также сценарий оболочки точки входа для базы данных:
#!/bin/sh
echo "Waiting for MySQL Database Service to start..."
./wait-for db:3306
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:8000