- tocdepth
2
Проверка логов контейнера в Container Apps
Если контейнер или ревизия в Container Apps находятся в статусе «Ошибка», проверьте логи контейнера.
Логи доступны в разделе личном кабинете.
вПользовательские логи — логи, которые записывает пользовательский код в стандартные потоки stdout
и stderr
.
Системные логи — логи событий компонентов среды Container Apps, в которой запускаются пользовательские экземпляры контейнеров. Записи об ошибках в системных логах имеют статус события «Warning».
Ниже приведены самые частые ошибки в системных локах и способы их устранения.
Ошибка «127.0.0.1:xxxx: connect: connection refused»
Ошибка означает, что приложение в контейнере не запустилось.
Для диагностики и устранения ошибки:
Убедитесь, что вы можете запустить контейнер локально.
Если контейнер локально не запускается, нужно диагностировать и устранить проблему с образом.
Убедитесь, что порт в настройках контейнера Container Apps соответствует порту, на котором работает ваше приложение.
Просмотреть порт контейнера можно в разделе личном кабинете. Изменить порт можно при создании контейнера или ревизии.
вПроверьте логи в разделе
, чтобы исключить вероятность ошибок на стороне кода вашего приложения.
После устранения ошибки в приложении соберите образ и создайте новую ревизию контейнера на его основе.
Ошибка «access denied»
На стороне Container Apps ограничен запуск контейнеров от имени root-пользователя. По умолчанию контейнеры запускаются от имени пользователя с идентификатором (UID) 1000.
Чтобы устранить ошибку:
В Dockerfile укажите команду создания пользователя с идентификатором 1000 и назначьте ему права на пользовательскую директорию:
RUN addgroup -g 1000 appuser \ && adduser -u 1000 -G appuser -s /bin/sh -D appuser RUN chown -R 1000 /mydirectory
где
/mydirectory
— название директории в вашем приложении.Соберите образ и создайте новую ревизию контейнера на его основе.
Обратите внимание, что хранилище в контейнере — эфемерное, то есть все содержимое пропадает после того, как контейнер удаляется или масштабируется до нуля. Для долгосрочного хранения файлов рекомендуем использовать сервис Object Storage. В сервисе доступен уровень бесплатного пользования (free tier).
Ошибка «error: failed to start container… create failed: unable to start container process: exec»
Ошибка возникает из-за некорректной команды точки входа и/или аргументов.
Команда точки входа и аргументы указываются опционально при создании контейнера или ревизии и перезаписывают значения по умолчанию, заданные в Docker-образе. Посмотреть команду и аргументы для ревизии можно в разделе в личном кабинете.
Чтобы изменить команду точки входа и аргументы, создайте новую ревизию контейнера.
Подробнее о команде точки входа (ENTRYPOINT) — в документации Docker.
для Dev & Test