двоичный файл получает «недопустимую инструкцию» на одном компьютере, но не на другом с тем же docker изображением - PullRequest
0 голосов
/ 18 января 2020

Я создал образ docker с несколькими пакетами, загруженными для среды разработки. Я планирую использовать образ, чтобы упростить перенос среды на различные машины.

В контейнере изображения я могу создать свой двоичный файл (используя cmake & g ++) на любой из машин, которые я загрузил docker изображение на. Двоичный файл хорошо работает в таких контейнерах на большинстве машин.

Но на одном компьютере выполнение двоичного файла в контейнере приводит к дампу ядра с сообщением о «недопустимой инструкции».

Cra sh происходит на машине с процессорами Intel Xeon. Но он отлично работает на другой машине Xeon. Он также отлично работает на машине AMD Ryzen.

Я не пробовал запускать двоичный файл вне контейнера, потому что среду так сложно настроить ... почему я использую docker.

Мне просто интересно, видел ли кто-нибудь, как это часто случается, и как начать пытаться разрешить проблему?

Если это помогает, и кто-то знает это, базовый образ, который я извлек из хаба docker, чтобы добавить другие пакеты to, это floopcz / tenorflow_ cc: ubuntu-shared. Это образ Ubuntu с API-интерфейсом Tensorflow C ++, созданным только для использования процессором (не CUDA). Сбой двоичного файла пытается открыть сессию Tensorflow, прежде чем делать что-либо еще.

Я работаю Docker 19.03 в Ubuntu 16.04 и 18.04. Образ загружен в Ubuntu 18.04.

...