Ошибки · Решение
Docker exit code 139: что означает и как исправить
Docker показывает статус процесса внутри контейнера. В Bash соглашение 128+N означает завершение сигналом N; 139 = 128+11 и часто указывает на SIGSEGV.
Короткий ответ
Docker exit code 139 — статус процесса контейнера; в Bash 139 часто получается как 128 + SIGSEGV(11), но сам Docker не назначает 139 отдельное специальное значение.
Что означает ошибка
Docker показывает статус процесса внутри контейнера. В Bash соглашение 128+N означает завершение сигналом N; 139 = 128+11 и часто указывает на SIGSEGV.
Возможные причины
- Нативный процесс получил segmentation fault.
- Несовместимая библиотека/архитектура приводит к падению нативного кода.
- Повреждение памяти проявляется только под контейнерной нагрузкой или конкретным input.
Что проверить
- Проверьте docker inspect .State.ExitCode и stderr/core dump процесса.
- Подтвердите SIGSEGV по kernel log/core dump, а не только по числу 139.
- Сравните архитектуру image, native libraries и host/runtime.
Безопасные шаги
- Соберите stack trace из core dump или sanitizer build.
- Исправьте нативный crash/ABI mismatch вместо перезапуска контейнера по кругу.
- Если статус 139 возвращён приложением намеренно, не трактуйте его как сигнал без дополнительного подтверждения.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если Docker exit code 139 повторяется после локализации стадии сбоя, приложите docker inspect, stderr и параметры запуска владельцу приложения/runtime.
Похожие ошибки
- /errors/docker-exit-code-125/
- /errors/docker-exit-code-127/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.