我正在尝试运行一个基于高山的容器,它将在启动时运行一个hello world C ++程序。但是,我得到了
运行容器时发生standard_init_linux.go:207: exec user process caused "no such file or directory"
错误。
我在容器中进行了ls -al
的检查,以检查文件是否存在正确的权限。名为test
的可执行文件位于具有-rwxrwxr-x
权限的根目录中。
这是我的Dockerfile。
FROM alpine:latest
ADD test /
ENTRYPOINT ["/test"]
有人可以帮助我确定问题所在吗?谢谢!
编辑:我在Ubuntu 18.04上编译了.cpp文件以生成可执行文件。
g++ -o test test.cpp
test.cpp:
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World"<<endl;
return 0;
}
答案 0 :(得分:4)
最可能是因为您在非高山操作系统上构建了{% section 'hero' %}
二进制文件,然后尝试在高山环境中运行它。
例如如果您检查二进制文件的依赖性,则可能会找到next(根据您的系统可能有所不同):
test
但是在高山地区,它不使用glibc,而是使用musl libc。
因此,建议您直接在高山中构建它,或者对于简单的应用程序,请使用next:
$ ldd test
linux-vdso.so.1
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2