Skip to content

Ibragim091986/fast_api_question

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Инструкция по развертыванию проекта с использованием Docker

Настройка переменных окружения

Перед началом работы необходимо настроить переменные окружения. Для этого переименуйте файл .env.example в .env и укажите в нем требуемые параметры. Пример содержимого файла .env:

PROJECT_NAME=question
APP_PORT=8001

DB_DRIVER=postgresql
DB_HOST=db
DB_PORT=5432
DB_DBNAME=quiz
DB_USERNAME=myuser
DB_PASSWORD=mypassword
  • APP_PORT: порт для обработки HTTP запросов (например, http://host:8001).
  • PROJECT_NAME: имя проекта, используется для именования контейнеров.
  • DB_*: параметры для подключения к базе данных.

Запуск Docker Compose

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

docker-compose up -d

Выполнение миграций базы данных

Войдите в контейнер с Python, используя имя вашего проекта из переменной окружения PROJECT_NAME:

  1. Войдите в контейнер с Python:
    docker exec -it question_service bash
    
  2. Запустите миграции:
    alembic upgrade head
    

Настройка Nginx

Настройте Nginx для перенаправления запросов на порт 8001 вашего контейнера. В конфигурации Docker Compose порт указан так:

ports:
  - "${APP_PORT}:8080"

Тестирование API

После настройки проекта и запуска сервисов вы можете тестировать API. Для этого используйте HTTP POST запросы к эндпоинту.

Пример запроса

Если вы настроили Nginx для перенаправления запросов с порта 80 на порт 8001, запрос можно отправить на http://localhost/api/v1/question. Если перенаправление не настроено, используйте адрес http://<host>:8001/api/v1/question.

Вот пример тестового запроса с использованием cURL, который отправляет данные в формате JSON:

curl --location --request POST 'http://<host>/api/v1/question' \
--header 'Content-Type: application/json' \
--data-raw '{
    "questions_num": 3
}'

About

Тестовый пример

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published