运行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"' ./...
知道发生了什么吗?
答案 0 :(得分:1)
看起来像musl
库问题,请尝试使用此构建命令go build -ldflags="-s -w"
。