sh:./bc2influx:进入已停止的容器时找不到

时间:2019-06-06 11:59:21

标签: docker go

运行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,可以执行,但不能执行

这是我的Dockerfile

FROM alpine

WORKDIR /bc2influx/
COPY ./release/bc2influx /bc2influx/
RUN ls -al /bc2influx/
CMD [ "./bc2influx" ]

我以前使用以下命令构建可执行文件:

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

知道发生了什么吗?

1 个答案:

答案 0 :(得分:1)

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