Docker使.sh可执行文件运行
我正在试图赋予我的脚本在Docker镜像的可执行权限,并运行它。 我不想在Dockerfile中为它设置chmod + x。 我试过了
docker run img / bin / bash -c“chmod + x ../test/test.sh; ../test/test.sh
但我得到了“/ bin / bash:糟糕的解释器:文本文件忙”
我不能用这个命令做两个容器:
docker run -d img chmod + x ../test/test.sh
docker运行-D img ../test/test.sh
=>启动容器进程导致“exec:\”../test/test.sh \“:权限被拒绝”
我需要以某种方式将这两个容器绑定在一起
Text file busy
意味着某些东西已经在使用该文件。
通常这会工作
docker run --rm -it alpine sh -c 'echo "echo it works" > test.sh && chmod +x test.sh && ./test.sh'
用第二个命令创build两个新的容器,完全是分开的。 如果你想在正在运行的容器中执行一些东西,你可以使用docker exec -it <container id or name> <command eg bash>
如果您只是将脚本作为parameter passing,则不需要设置烫发:
docker run -d IMAGE /bin/bash ../test/test.sh
(如果你需要添加-i
和/或-t
)
好吧,我已经想通了:
首先我做了一个容器:
docker run --name CONTAINER -dt IMAGE
然后执行我的命令:
docker exec CONTAINER chmod +x ../test/test.sh docker exec CONTAINER ../test/test.sh