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
Вернуться на верх