Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
脚本中带有docker的多命令_Docker - Fatal编程技术网

脚本中带有docker的多命令

脚本中带有docker的多命令,docker,Docker,有了docker,我想为每个客户机提供一个vm,以便只在一个文件中编译和执行C程序 为此,由于dockerfile和命令“ADD”,我与docker和主机共享了一个文件夹。 我的文件夹是这样的: folder/id_user/script.sh folder/id_user/code.c 在script.sh中: gcc./compile/code.c-o./compile/code&./compile/code 我的问题是在文件中,我们可以阅读此添加: 所有新文件和目录都是使用模式0755、

有了docker,我想为每个客户机提供一个vm,以便只在一个文件中编译和执行C程序

为此,由于dockerfile和命令“ADD”,我与docker和主机共享了一个文件夹。 我的文件夹是这样的:

folder/id_user/script.sh
folder/id_user/code.c
在script.sh中: gcc./compile/code.c-o./compile/code&./compile/code

我的问题是在文件中,我们可以阅读此添加:

所有新文件和目录都是使用模式0755、uid和gid 0创建的

但当我在文件上启动“ls”时,我有:

ls -l compil/8f41dacd-8775-483e-8093-09a8712e82b1/
total 8
-rw-r--r-- 1 1000 1000 51 Feb 11 10:52 code.c
-rw-r--r-- 1 1000 1000 54 Feb 11 10:52 script.sh
所以我无法执行script.sh。你知道为什么吗

也许你想知道为什么要这样做。 因为如果我这样做: sudocker运行ubuntu/cpwd&&pwd

result:
/
/srv/website
因此,我们可以看到第一个命令在VM中,而不是第二个命令。我知道这对docker来说很正常

如果你有什么建议,我很乐意听


谢谢

您可以通过使用chmod运行命令来设置正确的模式:

# Dockerfile
...
ADD script.sh /root/script.sh
RUN chmod +x /root/script.sh
...
第二个问题,您应该使用CMD命令-&&approach在Dockerfile中有效,请尝试将这一行放在Dockerfile的末尾:

CMD pwd && pwd
然后
docker build.
您将看到:

root@test:/home/test/# docker run <image>
/
/
root@test:/home/test/#docker run
/
/

您可以:

RUN /bin/sh /root/script.sh 
达到同样的效果