当我尝试通过/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` 

我像这样build立和运行,一切都很好,很棒:

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

当我做到以上我看到“嗨”两次与date。

现在,如果我想四次告诉“嗨”,我想我可以这样做:

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

但是,这个失败与错误:

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

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

对于内置命令,我可以使用“&&”运算符“链接”。 例如,这工作正常:

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

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

您的命令在主机上parsing为"docker run..." && /script.sh ,结果很明显。 您可能想要改写它说docker run ... /bin/bash -c "/script.sh && /script.sh"