gpt4 book ai didi

shell - Ubuntu容器找不到shell脚本

转载 作者:行者123 更新时间:2023-12-01 15:32:44 26 4
gpt4 key购买 nike

我是 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"]

我尝试了各种形式的 ENTRYPOINT 和 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。如果您无法手动完成(使用 Notepad++ 、atom 或 sublime),请尝试此链接 this link

关于shell - Ubuntu容器找不到shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47003188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com