Совместимы ли докеризированные приложения C ++ с предыдущими версиями ядра? - PullRequest
0 голосов
/ 21 февраля 2020

Скажем, у меня есть приложение C ++, работающее в контейнере docker с использованием современного дистрибутива linux (Ubuntu 19.10) со связанными версиями ядра G CC и linux. Сам контейнер размещен на Ubuntu 19.10.

Я строю свое приложение в контейнере и статически связываю все мои зависимости, кроме тех, которые предоставляются системой, а именно libc ++, lib c, et c. Они взяты из тех, что включены в базовое изображение Docker. Насколько известно моему приложению, оно живет в Ubuntu 19.10.

Затем я продолжаю развертывать образ Docker, содержащий мой двоичный файл приложения, на гораздо более старом ядре Linux (скажем, независимо от того, что использует CentOS 6).

Существует ли риск несовместимости ( ABI или иначе) этим занимаешься?

1 Ответ

1 голос
/ 21 февраля 2020

Да, есть риск. Вам нужно проверить libc требования, чтобы увидеть, какую версию ядра он поддерживает. Обычно libc является шлюзом для ядра для большинства программ, за исключением некоторых языков, в которых он реализовал собственные системные вызовы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...