在高山linux上执行mongodb二进制文件

我试图在Docker容器中运行Alpine 64位Linux中的二进制mongodb。 但是在运行命令: ./mongodb时会出现以下错误:

 bash-4.3 # ./mongod bash: ./mongod: No such file or directory. 

为什么不能运行它?

如果你仍然需要使用一个包,那么你现在可以在testing仓库中find一个包。

http://dl-3.alpinelinux.org/alpine/edge/testing/x86_64/

 echo 'http://dl-3.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories apk upgrade --update apk add mongodb 

由于MongoDB的二进制发行版与glibc链接,而Alpine Linux使用另一个C库:

 /tmp/mongo/mongodb-linux-x86_64-3.0.7/bin # ./mongod sh: ./mongod: not found /tmp/mongo/mongodb-linux-x86_64-3.0.7/bin # ldd ./mongod /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7f18f02ac000) libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7f18f009a000) libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x7f18efe0e000) Error relocating ./mongod: gnu_get_libc_version: symbol not found Error relocating ./mongod: __isinf: symbol not found Error relocating ./mongod: backtrace_symbols: symbol not found Error relocating ./mongod: __sbrk: symbol not found Error relocating ./mongod: strtoq: symbol not found Error relocating ./mongod: __register_atfork: symbol not found Error relocating ./mongod: __isnan: symbol not found Error relocating ./mongod: pthread_yield: symbol not found Error relocating ./mongod: strtouq: symbol not found Error relocating ./mongod: __finite: symbol not found Error relocating ./mongod: backtrace: symbol not found /tmp/mongo/mongodb-linux-x86_64-3.0.7/bin # 

所以直到有人为MongoDB构build一个Alpine Linux包,你唯一的select就是自己编译它。