такой екзешник:
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, with debug_info, not stripped
Правильно ли я понимаю, что просто засунуть его в какой-нибуть докер имедж не получиться, и запусать его можно только там, где он был сблиджен (тк он зависит от пути интерпретатора привязанного к машине на которой был запущен билд)?
Пути вроде как не хардкодятся, а подставляются лоадером динамических библотек. Поэтому бинарник должен запуститься на любой другйо системе, где будут в наличии нужные библиотеки.
Ну и в докер же обычно запихивают не один бинарник, если я опять ничего не путаю. Т.е. можно запихнуть туда вместе с либами и будет рабочий образ.
а какие либы туда необходимо докладывать?
Сделать ldd /path/to/file и посмотреть на какие библиотеки оно завязано. Их и класть.
Да пишет, что все библиотеки на месте - а при запуске выдает bash: ./my-app: No such file or directory что, вроде, указывает на отсутствие лоадера
Починил добавлением симлинка с /nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/ld-linux-x86-64.so.2 на /lib64/ld-linux-x86-64.so.2 внутри образа, но это шиза какая-то\
Обсуждают сегодня