protobuf связан с библиотекой glibc , а альпийский использует musl (и более старый альпийский использовали uclibc ). Они несовместимы. Ошибка, которую вы видите, возникает из компоновщика, не находящего библиотеку libc /lib64/ld-linux-x86-64.so.2
. Вы можете проверить это, выполнив команду ldd :
$ ldd /bin/protoc
/lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /bin/protoc)
Файл существует, и PATH в порядке. Чтобы исправить это, вы можете установить glibc на alpine (не рекомендуется) или просто перейти к обычному контейнеру linux.
@edit: Мой старый ответ не был прав, bash или sh не отправили исходный /etc/profile
по умолчанию , только при наличии опции -l
.