此问题已在此处有答案:
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
1条答案
按热度按时间6za6bjd01#
我解决了这个问题
FROM ubuntu:22.04
看起来alpine和我的binary不兼容。