# 1. Сборка контейнера для запуска в Serverless

Информация по основам работы с Docker находится здесь.

Для того, чтобы Docker-контейнер успешно запустился в Serverless инфраструктуре, нужно учесть несколько нюансов.

# 1. Контейнер должен слушать порт, приходящий из переменной окружения PORT

Каждый веб-сервис слушает какой-нибудь порт и обрабатывает приходящие на него данные.

Например, веб-сервера (nginx), обычно слушают порт 80. Сервера для разработки используют порты 3000, 8000 и т. д.

Контейнеру при запуске в облаке передается переменная окружения PORT, в которой указано, на каком порту он должен запуститься.

Перед развертыванием вам нужно проверить, что ваш контейнер тоже умеет принимать эту информацию.

Сделать эту проверку поможет следующая команда

docker run -ti --rm \
    -p 8888:8888 \  # пробрасываем порт для проверки приложения
    -e PORT=8888 \  # говорим приложению порт для запуска через переменную окружения
    image:latest    # укажите название образа
1
2
3
4

Примеры

# 2. И приложение, и веб-сервер должны запускаться в одном контейнере

Веб-сервер снимает часть нагрузки с приложения в части выдачи статических файлов, переадресации доступов, и т. д. И нередко веб-сервер запускается рядом с приложением на django, nuxt, next, spring...

Для упрощения развертывания рекомендуем запускать и веб-сервер, и приложение в одном контейнере.

Проще всего это организовать следующим образом:

  1. Собрать образ с приложением
  2. Проверить, что приложение в контейнере запускается
  3. Установить nginx в образе и настроить его конфигурацию, чтобы все работало корректно.

Если приложение само по себе предоставляет HTTP-интерфейс, готовый к промышленному использованию, можно обойтись без веб-сервера.

# 3. Базу данных в контейнер упаковывать не надо

Для базы данных есть отдельный сервис. Если хотите подключить какие-то еще сервисы, обратитесь к преподавателю.