Alpine Image standard_init_linux.go:207:exec用户进程导致“没有这样的文件或目录”

时间:2019-08-12 04:40:04

标签: c++ docker dockerfile alpine

我正在尝试运行一个基于高山的容器,它将在启动时运行一个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;
}

1 个答案:

答案 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