我试图在docker image中为我的脚本提供可执行权限并运行它。我不想在Dockerfile中为它设置chmod + x。 我试过了
docker run img / bin / bash -c" chmod + x ../test/test.sh; ../测试/ test.sh
但是我得到了#34; / bin / bash:糟糕的翻译:文本文件繁忙"
我不能用这个命令制作两个容器:
docker run -d img chmod + x ../ test / test.sh
docker run -d img ../ test / test.sh
=>启动容器进程导致" exec:\" ../ test / testing.sh \&#34 ;:权限被拒绝"
我需要以某种方式将这两个容器捆绑在一起
答案 0 :(得分:0)
Text file busy
表示某些内容已在使用该文件。
通常这会起作用
docker run --rm -it alpine sh -c 'echo "echo it works" > test.sh && chmod +x test.sh && ./test.sh'
使用第二个命令创建两个新容器,这些容器完全独立。如果要在正在运行的容器中执行某些操作,可以使用docker exec -it <container id or name> <command e.g. bash>
答案 1 :(得分:0)
好的,我已经想到了:
首先我制作了一个容器:
docker run --name CONTAINER -dt IMAGE
然后执行我的命令:
docker exec CONTAINER chmod +x ../test/test.sh
docker exec CONTAINER ../test/test.sh
答案 2 :(得分:0)
如果您只是将脚本作为参数传递,则无需设置perms:
docker run -d IMAGE /bin/bash ../test/test.sh
(如果您需要,请添加-i
和/或-t
)
答案 3 :(得分:-1)