繁体   English   中英

Docker:构建后在容器内运行二进制文件 - 权限被拒绝

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM