登录
首页 >  Golang >  Go问答

在Raspbian上执行用户进程时发生standard_init_linux.go:219错误:找不到文件或目录

来源:stackoverflow

时间:2024-02-06 23:51:23 446浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《在Raspbian上执行用户进程时发生standard_init_linux.go:219错误:找不到文件或目录》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

问题:我正在尝试使用 64 位 raspbian 在 raspberry pi 上创建并运行 edge service 的 docker 容器。由于其他限制,我尝试通过容器化构建可执行文件来容器化程序(在 golang 中),而不是在 dockerfile 中构建 .go。 我的 dockerfile 看起来像这样

from golang:alpine
workdir /build
add server .
expose 50051
cmd ["./server"]

运行构建的可执行文件可以正常工作,并且在使用命令“sudo docker build -t server:v7 .”创建 docker 映像时,docker 守护进程没有给出任何错误,完成的映像显示在列表中docker 镜像就好像它正常工作一样。但是,当我尝试运行该映像时,我收到错误“standard_init_linux.go:219: exec user process cause: no such file or directory”,而不是文件正在运行。

根据评论添加一些附加说明:所有程序都是在 ubuntu 中编写的,它们是在 raspberry pi 上构建的可执行文件,并且 dockerfile 也是在 raspberry pi 上编写的。当使用命令“sudo docker run -it -d : sh”时,镜像将运行,当使用命令“sudo docker exec -it sh”时,终端将进入shell。尝试从 shell 内运行该程序同样会失败,并产生错误“sh:未找到错误” ldd 产生以下结果:

/lib/ld-linux-aarch64.so.1 (0x7f8731f000)
libpthread.so.0 => /lib/ld-linux-aarch64.so.1 (0x7f8731f000)
libc.so.6 => /lib/ld-linux-aarch64.so.1 (0x7f8731f000)

而且 alpine 或 $path 似乎都没有问题


正确答案


您是在 Raspberry 还是其他机器上构建?如果您在 PC 上构建,则需要设置构建目标架构以匹配 Raspberry。

以上就是《在Raspbian上执行用户进程时发生standard_init_linux.go:219错误:找不到文件或目录》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>