Контейнер с dev-сервером Django

Posted by Георгий Кузора on Friday, January 26, 2024

Локальный docker контейнер для тестирования API приложения

Описание

Этот контейнер - это независимый сервер, который использует Werkzeug и Django для функционирования. На этом сервере работает версия приложения backend, которая размещена в локальной директории компьютера. Любые изменения в исходном коде непосредственно влияют на функционирование контейнера.

Подготовка среды для запуска контейнера

Чтобы начать работу с контейнером необходимо:

Скачать исходный код

Клонировать репозиторий backend в локальную директорию:

Используя https протокол:

git clone https://github.com/car-service-with-geolocation/backend.git

Либо используя SSH протокол:

git clone git@github.com:car-service-with-geolocation/backend.git

Установить Docker на локальный компьютер

Инструкции по установке Docker в вашей операционной системе можно найти на официальном веб сайте Docker.

Создать файл .env

Чтобы установить системные переменные, вы должны скопировать файл .env.template в файл .env.

В Linux и MacOS:

cp .env.template .env

В Windows:

Copy-Item -Path <Путь к .env.template> -Destination <Путь к .env>

Сборка и первый запуск контейнера

Для того чтобы собрать и запустить контейнер выполните следующую команду docker-compose:

docker compose -f docker-compose.dev.yml up -d

Вы также можете запустить Docker-compose через приложение Docker Desktop или используя расширение Docker для VS Code.

Будет создан и запущен контейнер с именем car-dev-server. Сервис будет назван dev-server.

Сервер будет работать по ссылке: https://127.0.0.1:8000.

Работа с контейнером

Миграция базы данных

Для миграции базы данных выполните команды:

docker exec -i car-dev-server python manage.py migrate
docker exec -i car-dev-server python manage.py import_city
docker exec -i car-dev-server python manage.py import_autoservice
docker exec -i car-dev-server python manage.py import_user

Создание вашего пользователя

Чтобы создать суперпользователя для проверки подлинности и использования Django Admin, вам нужно выполнить следующую команду:

docker exec -i car-dev-server python manage.py createsuperuser

Для пользователя необходимо получить токен аутентификации и добавить его в заголовок вашего запроса в Postman. Для получения токена выполните следующую команду:

docker exec -i car-dev-server python manage.py drf_create_token <Почта созданного вами ранее пользователя>

Запуск, перезапуск и остановка контейнера

Для запуска, перезапуска и остановки контейнера рекомендуется использовать команды Docker Compose:

Запуск:

docker compose -f docker-compose.dev.yml start

Перезапуск:

docker compose -f docker-compose.dev.yml restart

Остановка:

docker compose -f docker-compose.dev.yml stop

Заключение

Чтобы узнать больше о Docker, обратитесь к официальному сайту документации Docker.