tocdepth

2

Проверка логов контейнера в Container Apps

Если контейнер или ревизия в Container Apps находятся в статусе «Ошибка», проверьте логи контейнера.

Логи доступны в разделе Container Apps → <Название контейнера> → Логи в личном кабинете.

Пользовательские логи — логи, которые записывает пользовательский код в стандартные потоки stdout и stderr.

Системные логи — логи событий компонентов среды Container Apps, в которой запускаются пользовательские экземпляры контейнеров. Записи об ошибках в системных логах имеют статус события «Warning».

Ниже приведены самые частые ошибки в системных локах и способы их устранения.

Ошибка «127.0.0.1:xxxx: connect: connection refused»

Ошибка означает, что приложение в контейнере не запустилось.

Для диагностики и устранения ошибки:

  1. Убедитесь, что вы можете запустить контейнер локально.

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

  2. Убедитесь, что порт в настройках контейнера Container Apps соответствует порту, на котором работает ваше приложение.

    Просмотреть порт контейнера можно в разделе Ревизии → Общие параметры в личном кабинете. Изменить порт можно при создании контейнера или ревизии.

  3. Проверьте логи в разделе Container Apps → <Название контейнера> → Логи → Пользовательские, чтобы исключить вероятность ошибок на стороне кода вашего приложения.

После устранения ошибки в приложении соберите образ и создайте новую ревизию контейнера на его основе.

Ошибка «access denied»

На стороне Container Apps ограничен запуск контейнеров от имени root-пользователя. По умолчанию контейнеры запускаются от имени пользователя с идентификатором (UID) 1000.

Чтобы устранить ошибку:

  1. В Dockerfile укажите команду создания пользователя с идентификатором 1000 и назначьте ему права на пользовательскую директорию:

    RUN addgroup -g 1000 appuser \
        && adduser -u 1000 -G appuser -s /bin/sh -D appuser
    RUN chown -R 1000 /mydirectory
    

    где /mydirectory — название директории в вашем приложении.

  2. Соберите образ и создайте новую ревизию контейнера на его основе.

Обратите внимание, что хранилище в контейнере — эфемерное, то есть все содержимое пропадает после того, как контейнер удаляется или масштабируется до нуля. Для долгосрочного хранения файлов рекомендуем использовать сервис Object Storage. В сервисе доступен уровень бесплатного пользования (free tier).

Ошибка «error: failed to start container… create failed: unable to start container process: exec»

Ошибка возникает из-за некорректной команды точки входа и/или аргументов.

Команда точки входа и аргументы указываются опционально при создании контейнера или ревизии и перезаписывают значения по умолчанию, заданные в Docker-образе. Посмотреть команду и аргументы для ревизии можно в разделе Ревизии → Общие параметры в личном кабинете.

Чтобы изменить команду точки входа и аргументы, создайте новую ревизию контейнера.

Подробнее о команде точки входа (ENTRYPOINT) — в документации Docker.

Запустили Evolution free tier
для Dev & Test
Получить