Проєкт містить Django-застосунок, PostgreSQL базу даних та Nginx вебсервер, налаштовані через Docker Compose.
- Python 3.11
- Django
- PostgreSQL 16
- Nginx 1.27
- Docker
- Docker Compose
.
├── config/
│ ├── settings.py
│ ├── urls.py
│ ├── asgi.py
│ └── wsgi.py
├── nginx/
│ └── nginx.conf
├── Dockerfile
├── docker-compose.yml
├── manage.py
├── requirements.txt
├── .env.example
└── README.md
web— Django-застосунокdb— PostgreSQL база данихnginx— вебсервер для проксирування запитів до Django
Приклад змінних знаходиться у файлі:
.env.example
Перед запуском проєкту створіть локальний файл .env на основі .env.example:
cp .env.example .envФайл .env не додається в Git, оскільки він може містити локальні значення змінних середовища.
Для запуску можна залишити значення з .env.example без змін.
Створити локальний файл .env:
cp .env.example .envЗапустити всі сервіси:
docker compose up -dПеревірити статус контейнерів:
docker compose psЗастосувати міграції Django:
docker compose exec web python manage.py migrateПісля запуску застосунок буде доступний за адресою:
http://localhost
Перевірити HTTP-відповідь застосунку:
curl -I http://localhostОчікуваний результат:
HTTP/1.1 200 OK
Перевірити створені таблиці у базі даних:
docker compose exec db psql -U django_user -d django_db -c "\dt"Очікувано мають бути створені стандартні таблиці Django, зокрема:
auth_user
auth_group
django_admin_log
django_content_type
django_migrations
django_session
docker compose downNginx проксирує HTTP-запити до Django-сервісу web на порт 8000.
proxy_pass http://web:8000;У проєкті використовується файл:
docker-compose.yml
Для запуску використовується сучасна команда Docker Compose v2:
docker compose up -d