Докеризация приложения Django и MySQL с помощью docker-compose с использованием .env

Я хочу запустить свой проект Django в контейнере Docker с базой данных в другом контейнере Docker внутри Bebian

Когда я запускаю свой контейнер docker, у меня возникают некоторые ошибки. Например Lost connection to MySQL server during query ([Errno 104] Connection reset by peer). Эта команда mysql > SET GLOBAL log_bin_trust_function_creators = 1 очень важна, потому что триггер создания пользователя базы данных Django. Более того, я использую .env файл, используемый также для создания образа DB для хранения пользователя и пароля DB. Этот путь settings/.env.

Мой код: docker-compose.yml:

version: '3.3'

services:
  db:
    image: mysql:8.0.29
    container_name: db_mysql_container
    environment:
      MYSQL_DATABASE: $DB_NAME
      MYSQL_USER: $DB_USER
      MYSQL_PASSWORD: $DB_PASSWORD
      MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD
    command: ["--log_bin_trust_function_creators=1"]
    ports:
      - '3306:3306'
    expose:
      - '3306'
  api:
    build: .
    container_name: django_container
    command: bash -c "pip install -q -r requirements.txt &&
                      python manage.py migrate &&
                      python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/app
    ports:
      - '8000:8000'
    depends_on:
      - db

Dockerfile :

# syntax=docker/dockerfile:1
FROM python:3.9.14-buster
ENV PYTHONUNBUFFERED=1
RUN mkdir /app
WORKDIR /app
COPY requirements.txt /app/
RUN pip install -r requirements.txt
ADD . /app/

Как запустить мой проект Django? Можно ли запустить только контейнер DB ?

Какую команду мне нужно выполнить и какие изменения мне нужно сделать, я новичок в Docker! Так что если вы поможете мне, пожалуйста, объясните ваши команды и действия!

Вы можете найти этот проект на моем GitHub

Спасибо!

Запустить докеризованный проект django.

Просто выполните следующую команду:

docker-compose run projectname bash -c "python manage.py createsuperuser"

Вышеприведенная команда используется для создания суперпользователя

Вернуться на верх