Ubuntu 容器找不到 shell 脚本

Ubuntu container can't find shell script

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

我的 shell 脚本很简单:

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

我的Docker文件是:

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

我尝试了各种形式的 ENTRYPOINT 和 CMD 调用,并且 none 有效。它们都以 "no such file or directory" 失败。当我将入口点更改为“/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。如果你不能手动完成(使用 notepad++、atom 或 sublime)试试这个 link this link