[英]Docker: run binary inside container after build - permission denied
我的 Dockerfile 的入口点是:
ENTRYPOINT ["/bin/bash", "-l", "/runner/run.sh"]
run.sh
只是构建一个二进制文件并尝试执行结果,例如:
[....]
cd /tmp/repo
cmake .
make
./main
但是在执行二进制文件时,会发生错误:
/runner/run.sh: line 16: ./main: Permission denied
我自己通过逐行执行脚本检查了权限,它们就足够了:
-rwxr-xr-x 1 runner runner 660664 Mar 1 17:39 main
编辑: docker 包裹在docker-compose
中:
version: "3.6"
services:
svrunner:
image: runner:latest
tmpfs:
- /tmp
使用docker run runner:latest
一切正常,但docker-compose run svrunner
说权限被拒绝。
这里有什么问题?
问题出在将 tmpfs 挂载为 (rw,nosuid,nodev,noexec,...) https://github.com/docker/compose/issues/3425的 docker-compose 中。
使用:
version: "3.6"
services:
svrunner:
image: runner:latest
tmpfs:
- /tmp:exec,mode=777
解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.