# 1. Сборка контейнера для запуска в Serverless
Информация по основам работы с Docker находится здесь.
Для того, чтобы Docker-контейнер успешно запустился в Serverless инфраструктуре, нужно учесть несколько нюансов.
# 1. Контейнер должен слушать порт, приходящий из переменной окружения PORT
Каждый веб-сервис слушает какой-нибудь порт и обрабатывает приходящие на него данные.
Например, веб-сервера (nginx), обычно слушают порт 80
.
Сервера для разработки используют порты 3000
, 8000
и т. д.
Контейнеру при запуске в облаке передается переменная окружения PORT
, в которой указано,
на каком порту он должен запуститься.
Перед развертыванием вам нужно проверить, что ваш контейнер тоже умеет принимать эту информацию.
Сделать эту проверку поможет следующая команда
docker run -ti --rm \
-p 8888:8888 \ # пробрасываем порт для проверки приложения
-e PORT=8888 \ # говорим приложению порт для запуска через переменную окружения
image:latest # укажите название образа
2
3
4
Примеры
- Приложение, запускаемое с помощью uwsgi c указанием порта (opens new window)
- Замена порта в конфигурации nginx (opens new window)
- Работа с переменными окружения
# 2. И приложение, и веб-сервер должны запускаться в одном контейнере
Веб-сервер снимает часть нагрузки с приложения в части выдачи статических файлов, переадресации доступов, и т. д. И нередко веб-сервер запускается рядом с приложением на django, nuxt, next, spring...
Для упрощения развертывания рекомендуем запускать и веб-сервер, и приложение в одном контейнере.
Проще всего это организовать следующим образом:
- Собрать образ с приложением
- Проверить, что приложение в контейнере запускается
- Установить nginx в образе и настроить его конфигурацию, чтобы все работало корректно.
Если приложение само по себе предоставляет HTTP-интерфейс, готовый к промышленному использованию, можно обойтись без веб-сервера.
# 3. Базу данных в контейнер упаковывать не надо
Для базы данных есть отдельный сервис. Если хотите подключить какие-то еще сервисы, обратитесь к преподавателю.