当我尝试通过/script.sh&&amp ;;来调用它时,Docker无法找到我复制到图像的脚本。 /script.sh(但一旦工作!)

时间:2015-12-15 06:17:56

标签: docker dockerfile

我正在尝试做的一个简单示例涉及这样的Dockerfile:

from ubuntu

COPY  script.sh /script.sh
RUN   chmod a+x /script.sh

这样的脚本文件:

/script.sh

#!/bin/bash

    echo hi `date`
    sleep 1
    echo hi `date`

我建造并运行这样,一切都很好,花花公子:

docker build -t client .
docker run   client  /script.sh

当我执行上述操作时,我会在日期中看到“hi”两次。

现在,如果我想被告知'嗨'四次,我认为我可以这样做:

docker run   client  /script.sh && /script.sh

但是失败了错误:

bash: /script.sh: No such file or directory

很奇怪..因为我提供了/script.sh的完整路径..我想知道为什么bash找不到它。

对于内置命令,我可以使用'&&'来“链接”运营商。例如,这很好用:

docker run   client  /script.sh &&  echo it works

如果有人能够启发我,我将非常感激!

1 个答案:

答案 0 :(得分:1)

您的命令在主机上解析为"docker run..." && /script.sh,结果明显。您可能希望将其改为docker run ... /bin/bash -c "/script.sh && /script.sh"