Ubuntu容器找不到shell脚本

我是Docker的新手,正在尝试一个运行shell脚本的Ubuntu容器的简单示例。 我在Windows 10上使用Docker 17.09.0-ce。

我的shell脚本就是:

#!/bin/sh echo "hello world!" 

我的Dockerfile是:

 FROM ubuntu:14.04 WORKDIR /usr/local/bin COPY shelltest.sh shelltest.sh ENTRYPOINT ["/usr/local/bin/shelltest.sh"] 

我已经尝试了各种forms的入口点和CMD调用,没有任何工作。 他们都失败,“没有这样的文件或目录”。 当我将入口点改为“/ bin / sh”并交互启动容器时,我可以看到文件/usr/local/bin/shelltest.sh,它具有执行权限755,所以我不知所措解释为什么这不起作用。 当入口点设置为“ls -l /usr/local/bin/shelltest.sh”时,以下是容器中文件的样子:

 ENTRYPOINT ["ls", "-l", "/usr/local/bin/shelltest.sh"] d:\Dev\Docker\shelltest>docker run shelltest -rwxr-xr-x 1 root root 32 Oct 29 16:32 /usr/local/bin/shelltest.sh 

我错过了什么?

以下是我尝试过的一些事情:

 ENTRYPOINT ["/usr/local/bin/shelltest.sh"] d:\Dev\Docker\shelltest>docker run shelltest standard_init_linux.go:185: exec user process caused "no such file or directory" ENTRYPOINT ["shelltest.sh"] d:\Dev\Docker\shelltest>docker run shelltest standard_init_linux.go:185: exec user process caused "no such file or directory" CMD ["/usr/local/bin/shelltest.sh"] d:\Dev\Docker\shelltest>docker run shelltest standard_init_linux.go:185: exec user process caused "no such file or directory" 

有时候,如果你在Windows中编写你的shell脚本,你会得到像这样的执行错误,请尝试使用dos2unix shelltest.sh或将其保存为Unix文件,而不是DOS。 如果你不能手动(使用记事本++,primefaces或崇高)尝试此链接此链接