docker run给出exec /main:当文件存在时没有这样的文件或目录[重复]

bf1o4zei  于 2023-06-05  发布在  Docker
关注(0)|答案(1)|浏览(434)

此问题已在此处有答案

Docker Alpine executable binary not found even if in PATH(6个答案)
"No such file or directory" error when executing a binary(9个答案)
6天前关闭
下面是我的Dockerfile:

FROM alpine:latest
COPY ./main .
COPY ./configs/. .
EXPOSE 8081
CMD ["/main"]

如果我执行docker run -it --entrypoint=/bin/sh metadata,我可以看到/main文件在那里,并且是可执行的

/ # ls -lart /main
-rwxrwxr-x    1 root     root      15352712 May 29 19:16 /main

这是一个Go二进制文件,所以没有不满意的依赖关系。
当我尝试运行它时,它说/main文件不存在,即使它在那里:

$ docker run -p 8081:8081 -it metadata
exec /main: no such file or directory

这是docker中的bug吗?
我在Ubuntu 22.04上运行Docker 20.10.21。
--编辑--
我试过在docker中运行/main二进制文件,Alpine发行版找不到它来执行它:

$ docker run -it --entrypoint=/bin/sh metadata
/ # ls -l /main
-rwxrwxr-x    1 root     root      15352712 May 29 19:16 /main
/ # /main
/bin/sh: /main: not found
/ # ls
base.yaml  dev        home       main       mnt        proc       run        srv        tmp        var
bin        etc        lib        media      opt        root       sbin       sys        usr
/ # ./main
/bin/sh: ./main: not found
/ # main
/bin/sh: main: not found
6za6bjd0

6za6bjd01#

我解决了这个问题
FROM ubuntu:22.04
看起来alpine和我的binary不兼容。

相关问题