- tocdepth
2
Среда выполнения в Container Apps
Характеристики среды выполнения:
Операционная система — Debian GNU/Linux 11 «Bullseye»
Ядро Linux — 5.15
Требования к образу
Образ должен удовлетворять следующим требованиям:
Язык программирования — любой.
Доступный формат образа — Docker Image Manifest V 2.
Docker-образ должен имплементировать любой тип веб-сервера и определять номер порта, на котором контейнер будет принимать запросы.
Docker-образ должен быть собран под плафторму linux/amd64.
Container Apps пока не поддерживает запуск Docker-oбразов, собранных под другие платформы. При использовании Apple Mac с процессором серии М образ по умолчанию собирается под платформу arm64.
При работе на Mac добавляйте в команду скачивания и сборки образа параметр
--platform linux/amd64
.В Docker-образе не должны использоваться настройки для подключения томов (volumes) к контейнеру.
Если образ был собран на основе Dockerfile, который содержит инструкцию VOLUME, то такой образ пока не может использоваться для развертывания контейнера в Container Apps.
Если контейнер запускается от имени root-пользователя, то при создании контейнера в Container Apps необходимо включить привилегированный режим, иначе контейнер не запустится.
Если контейнер запускается не от имени root-пользователя, то в Dockerfile укажите команду создания пользователя с идентификатором 1000 и назначьте ему права на пользовательскую директорию:
RUN addgroup -g 1000 appuser \ && adduser -u 1000 -G appuser -s /bin/sh -D appuser RUN chown -R 1000 /mydirectory
где
/mydirectory
— название директории в вашем приложении.По умолчанию контейнеры в Container Apps запускаются от имени пользователя с идентификатором (UID) 1000, если не включен привилегированный режим.
Docker-образ не должен находиться в карантине из-за наличия уязвимостей в реестре Artifact Registry, иначе его будет невозможно использовать для развертывания контейнера.
Вычислительный ресурс
Для каждого экземпляра контейнера выделяются следующие ресурсы:
vCPU
Ресурс vCPU выделяется всегда, когда экземпляр контейнера обрабатывает запрос.
RAM
RAM расходуется при обработке запросов и запуске процессов в контейнере.
Переменные окружения
Добавить дополнительные переменные окружения можно при сборке Docker-образа или при создании контейнера.
Переменная окружения PORT
определена в среде выполнения Container Apps и не может быть переопределена.
В переменную PORT
записывается значение поля Порт, которое указывается вами при создании контейнера.
Получить переменные окружения можно с помощью стандартных средств языка программирования. Переменные, заданные при создании контейнера, также отображаются в личном кабинете в разделе
.Добавление переменных при создании контейнера
В Container Apps вы можете задать переменные среды выполнения при создании контейнера или ревизии. Эти переменные среды загружаются в контейнерное приложение во время выполнения.
Значение переменной может быть реальным значением или ссылкой на секрет. В секреты рекомендуем добавлять чувствительные данные — например, пароль от базы данных, к которой обращается приложение.
Для использования в значении переменной секрета, его нужно предварительно создать в сервисе Secret Manager. Секрет может иметь несколько версий. Единовременно может быть активна только одна версия секрета — последняя созданная. Вы можете управлять версиями секретов в интерфейсе Secret Manager в личном кабинете.
Если в процессе работы контейнера вы выбрали активной другую версию секрета, остановите и запустите контейнер заново, чтобы он начал использовать новую версию секрета в переменной.
Привилегированный режим (privileged mode)
Сервис Container Apps поддерживает запуск контейнеров в привилегированном режиме (privileged mode).
Контейнер в привилегированном режиме может запускать процессы, которые требуют root-доступ. Как правило, это нужно, когда приложение внутри контейнера хочет взаимодействовать напрямую с определенным оборудованием или функциями на системном уровне.
По умолчанию контейнеры в Container Apps запускаются в непривилегированном режиме, от имени пользователя с идентификатором (UID) 1000. Если при создании контейнера включить опцию Привилегированный режим, то контейнер будет запущен от имени root-пользователя.
Контейнеры в привилегированном режиме обычно используются:
для приложений, которым требуются расширенные права для запуска;
если приложение активно использует системные вызовы в процессе выполнения, например Docker-in-Docker в контейнере.
В остальных случаях рекомендуем запускать контейнеры в Container Apps в непривилегированном режиме.
для Dev & Test