Чтобы правильно подключить Django к базе данных в Docker на MacOS, вам понадобятся следующие шаги:
1. Установите Docker:
- Перейдите на официальный сайт Docker (https://www.docker.com/) и скачайте версию Docker Desktop для MacOS.
- Запустите установщик и следуйте инструкциям для установки Docker.
2. Создайте проект Django:
- Установите Django, выполнив следующую команду в терминале:
pip install django
- Создайте новый проект Django с помощью команды:
django-admin startproject myproject
3. Создайте файл Dockerfile:
- В корневой папке проекта создайте новый файл с именем Dockerfile
(без расширения).
- Откройте этот файл в текстовом редакторе и добавьте следующий код:
FROM python:3 ENV PYTHONUNBUFFERED=1 WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/
4. Создайте файл docker-compose.yml:
- В корневой папке проекта создайте новый файл с именем docker-compose.yml
.
- Откройте этот файл в текстовом редакторе и добавьте следующий код:
version: '3' services: db: image: postgres ports: - "5432:5432" environment: POSTGRES_USER: myprojectuser POSTGRES_PASSWORD: myprojectpassword POSTGRES_DB: myprojectdb web: build: . command: python manage.py runserver 0.0.0.0:8000 ports: - "8000:8000" volumes: - .:/code depends_on: - db
В данном файле определены две службы: db
(для базы данных) и web
(для приложения Django).
5. Создайте файл requirements.txt:
- В корневой папке проекта создайте новый файл с именем requirements.txt
.
- Внутри этого файла добавьте все зависимости Django и других пакетов, которые ваше приложение использует. Например:
Django==3.2.5 psycopg2-binary==2.9.1
6. Соберите и запустите контейнеры:
- Откройте терминал и перейдите в корневую папку проекта.
- Выполните команду для создания и запуска контейнеров:
docker-compose up --build
Эта команда создаст и запустит контейнеры, описанные в файле docker-compose.yml
.
7. Настройте Django для подключения к базе данных:
- В файле settings.py
вашего проекта Django обновите настройки базы данных следующим образом:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'db', 'PORT': '5432', 'NAME': 'myprojectdb', 'USER': 'myprojectuser', 'PASSWORD': 'myprojectpassword', } }
Обратите внимание, что значения переменных HOST
, NAME
, USER
и PASSWORD
соответствуют значениям, указанным в файле docker-compose.yml
для службы db
.
8. Запустите миграции и проверьте подключение:
- В терминале выполните следующие команды:
docker-compose exec web python manage.py migrate docker-compose exec web python manage.py createsuperuser
Первая команда применяет миграции Django, а вторая создает суперпользователя.
- После успешного выполнения команды createsuperuser
вы сможете войти в административную панель Django.
Теперь у вас должен быть полностью настроенный и работающий проект Django с подключенной базой данных в Docker на вашей MacOS. Вы можете продолжить разработку своего приложения, создавать модели, представления и шаблоны, взаимодействовать с базой данных и тестировать приложение в среде Docker.