docker run [9] System error: exec format error

docker run [9] System error: exec format error

我创建了 Dockerfile 来构建名为 aii 的映像。

FROM docker.io/centos:latest

#Set parameters
ENV BinDir /usr/local/bin
ENV RunFile start-aii.sh

ADD ${RunFile} ${BinDir}
#Some other stuff
...

CMD ${RunFile}

当我用下面的命令运行图像时:

docker run -it -v <some-volume-mapping> aii

效果很好(运行ning CMD 命令的默认操作-aii.sh)。 现在,如果我尝试覆盖此默认行为并使用相同的脚本隐式 运行 图像(并添加另一个 arg),我会收到以下错误:

docker run -it -v <some-volume-mapping> aii start-aii.sh kafka
exec format error
docker: Error response from daemon: Cannot start container b3f4f3bde04d862eb8bc619ea55b7061ce78ace8f1984a12f6ec681877d7d926: [9] System error: exec format error.

我也试过:只有脚本(没有参数)

docker run -it -v <some-volume-mapping> aii start-aii.sh

和脚本的完整路径

docker run -it -v <some-volume-mapping> aii /usr/local/bin/start-aii.sh

但出现同样的错误。

其他信息:

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
2488a4dd7014        aii                 "start-aii.sh kafka"     3 seconds ago       Created                                 tiny_payne

有什么建议吗?

谢谢

尝试在使用您的脚本之前启动 bash,并使用 --rm 标志以便在作业结束后销毁实例,例如:

docker run -it --rm -v <some-volume-mapping> aii /bin/bash /usr/local/bin/start-aii.sh

有同样的问题,通过在文件顶部添加 #!/bin/sh 而不是其他评论来修复它。