登录
首页 >  Golang >  Go问答

容器未找到:无法进入已停止的bc2influx

来源:stackoverflow

时间:2024-03-26 10:30:34 107浏览 收藏

在运行 Docker 容器时,用户遇到了“容器未找到”的错误。进入已停止的容器后,发现无法执行可执行文件,但可以执行其他命令。经调查,怀疑是 musl 库问题导致的。

问题内容

我在运行 docker 容器时遇到问题。

➜  bc_to_influx git:(master) ✗ docker run registry.gitlab.com/xxx/bc_to_influx:latest
standard_init_linux.go:207: exec user process caused "no such file or directory"

当我调试时,我进入停止的容器:

docker commit 0db73216baaf  user/test_image 
docker run -ti --entrypoint=sh user/test_image

ls 命令上,我只能执行我的可执行文件:

/bc2influx # ls -al
total 20552
drwxr-xr-x    1 root     root          4096 jun  6 10:32 .
drwxr-xr-x    1 root     root          4096 jun  6 11:53 ..
-rwxr-xr-x    1 root     root      21034520 jun  6 10:29 bc2influx
/bc2influx #

但是当我尝试执行时,我得到:

/bc2influx # ./bc2influx 
sh: ./bc2influx: not found

我可以 vi, cat 执行,但不执行它

这是我的 dockerfile

from alpine

workdir /bc2influx/
copy ./release/bc2influx /bc2influx/
run ls -al /bc2influx/
cmd [ "./bc2influx" ]

我之前构建了我的可执行文件:

go build -o ./release/bc2influx -v -ldflags '-extldflags "-static"' ./...

知道发生了什么吗?


解决方案


看起来像 musl 库问题,请尝试此构建命令 go build -ldflags="-s -w"

以上就是《容器未找到:无法进入已停止的bc2influx》的详细内容,更多关于的资料请关注golang学习网公众号!

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