当我尝试通过 /script.sh &&/script.sh 调用它两次时,Docker 找不到我复制到映像的脚本(但一次有效!



我尝试做的一个简单例子涉及这样的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

当我这样做的时候,我会看到两次"嗨"和约会。

现在,如果我想被打四次"嗨",我想我可以这样做:

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

如果有人能启发我,我将不胜感激!

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

最新更新