Docker找不到可执行文件

时间:2018-08-04 20:31:01

标签: docker dockerfile go-micro

我有一个用Golang编写的可执行文件,它可以从Linux提示符下启动并正常运行。如您所见,可执行文件在启动时需要一个XML文件。但是在Docker环境中启动时,出现错误消息:

standard_init_linux.go:190: exec user process caused "no such file or directory"

让我告诉您我尝试了什么。首先,这是我的Dockerfile:

FROM alpine:latest
MAINTAINER Bert Verhees "xxxxx"
ADD archibold_ucum_service /archibold_ucum_service
ADD data/ucum-essence.xml /data/ucum-essence.xml
ENTRYPOINT ["/archibold_ucum_service", "-ucumfile=/data/ucum-essence.xml"]

我以这种方式构建它:

docker build -t=ucum_micro_service .

然后我以这种方式启动

docker run --name=ucum_micro_service -i -t ucum_micro_service /bin/sh

执行此操作时,出现错误消息,如上所示。然后,我尝试注释掉ENTRYPOINT行,然后它构建OKAY并启动linux提示符,因此我可以查询其中的内容。 可执行文件在其中,数据文件也在其中。可执行文件还具有正确的属性(它在docker-container内部可执行)

然后,我尝试从已启动容器内的linux-prompt启动可执行文件,然后再次收到一条消息,提示找不到该文件:

/ # ./archibold_ucum_service
/bin/sh: ./archibold_ucum_service: not found

为完整起见,这里部分是容器中的目录结构:

/ # ls -l
total 17484
-rwxrwxr-x    1 root     root      17845706 Aug  3 13:21 archibold_ucum_service
drwxr-xr-x    2 root     root          4096 Jul  5 14:47 bin
drwxr-xr-x    2 root     root          4096 Aug  3 14:29 data
drwxr-xr-x    5 root     root           360 Aug  4 20:27 dev
drwxr-xr-x   15 root     root          4096 Aug  4 20:27 etc
drwxr-xr-x    2 root     root          4096 Jul  5 14:47 home
drwxr-xr-x    5 root     root    ........
.......

那么,可能是什么问题。我现在想解决这个问题超过一天。感谢您的支持。

0 个答案:

没有答案