Docker предлагает способ запуска приложений в согласованной среде, что упрощает развертывание и масштабирование. FastAPI — это современный, быстрый веб-фреймворк для создания API с использованием Python на основе стандартных подсказок по типу Python. В этой статье мы расскажем вам о процессе настройки приложения FastAPI.

Предварительные требования

  • Базовое понимание Python и FastAPI.
  • На вашем компьютере установлен Docker.

Запуск FastAPI в Docker по шагам

1. Создайте приложение FastAPI

Прежде чем мы приступим к процессу настройки, давайте создадим базовое приложение FastAPI. Если у вас есть существующее приложение, пропустите этот шаг. Вот простой main.py:

2. Настройка requirements.txt

Рекомендуется перечислять все ваши зависимости от Python в requirements.txt файле. В этом примере у вас будет:

3. Создайте файл Dockerfile

В Dockerfile содержатся инструкции для Docker о том, как создать образ нашего приложения. Создайте Dockerfile в корневом каталоге вашего приложения со следующим содержимым:Реклама

В этом файле Dockerfile:

  • Мы используем облегченный образ Python 3.9.
  • Мы устанавливаем некоторые переменные окружения, чтобы оптимизировать Python для работы в контейнере Docker.
  • Мы устанавливаем рабочий каталог внутри контейнера в /app.
  • Мы копируем содержимое нашего текущего каталога в контейнер.
  • Мы устанавливаем зависимости Python.
  • Наконец, мы говорим Docker запускать uvicorn с нашим приложением при запуске контейнера.

4. Создайте файл .dockerignore

Точно так же, как мы можем игнорировать файлы с помощью .gitignore, мы можем сделать то же самое с помощью .dockerignore. Это гарантирует, что определенные файлы и каталоги не будут скопированы в контейнер. Вот базовый .dockerignore:

5. Создайте образ Docker

Теперь, когда у нас есть наш Dockerfile настроен, мы можем создать образ для нашего приложения:

Это создаст образ Docker с именем fastapi_app из нашего текущего каталога.

6. Запустите контейнер Docker

Теперь, когда у нас есть наш образ, мы можем запустить его:Реклама

Эта команда сообщает Docker запустить наш образ и сопоставить порт 8000 на нашем хост-компьютере с портом 80 в контейнере.

После запуска контейнера вы можете перейти на страницу http://localhost:8000 и увидеть приложение FastAPI в действии.

Настройка FastAPI с помощью Docker-compose

Docker-compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Для FastAPI и многих других приложений он особенно полезен, когда вам нужно связать свое приложение со службами, такими как базы данных, системы кэширования и т.д. Для простоты мы продемонстрируем настройку docker-compose только для приложения FastAPI, но вы можете распространить это действие и на другие сервисы.

1. Установите Docker-compose

Перед началом работы убедитесь, что у вас установлен Docker-compose.

2. Создайте файл docker-compose.yml

В корневом каталоге вашего приложения FastAPI создайте файл с именем docker-compose.yml и заполните его следующим:

В этой конфигурации:

  • версия: указывает версию формата файла Docker-compose.
  • сервисы: определяет службы для запуска.
  • веб: название нашего сервиса FastAPI.
  • build: указывает каталог, в котором находится Dockerfile (в данном случае текущий каталог).
  • команда: это переопределяет CMD, установленный в файле Dockerfile.
  • порты: сопоставляет порт 8000 на хосте с портом 80 в контейнере.
  • тома: Синхронизирует текущий каталог (ваш код FastAPI) с /app внутри контейнера.
  • окружение: устанавливает переменные окружения для контейнера. Мы устанавливаем PYTHONUNBUFFERED = 1 только для этого примера.

3. Запустите службы Docker-compose

Установив файл docker-compose.yml, перейдите в корневой каталог вашего приложения FastAPI и запустите:

Эта команда сообщает Docker-compose запустить службы, определенные в docker-compose.yml. В нашем примере она создает и запускает приложение FastAPI.

Теперь, если вы перейдете на страницу http://localhost:8000, вы увидите, что ваше приложение FastAPI запущено.

4. Остановка служб

Чтобы остановить службы, запущенные Docker-compose, просто нажмите Ctrl + C в терминале, где запущен docker-compose up. Чтобы остановить и удалить все контейнеры, определенные в docker-compose.yml, вы можете запустить:

Следуя описанным выше шагам, вы успешно настроили приложение FastAPI. Настройка ваших приложений дает ряд преимуществ, включая согласованную среду, более легкое масштабирование и упрощенное развертывание. Благодаря скорости FastAPI и удобству Docker вы хорошо подготовлены к созданию и развертыванию высокопроизводительных веб-приложений.

Источник