我有一个Qt项目,它使用一个插件接口,可以很好地编译我的系统。但是,当在docker中编译同一个项目时,它停止使用Qt 5.10.1,给出消息Error: Undefined interface
。在strace
运行moc
之后,发现找不到定义接口的头文件,因为对include文件路径的statx
调用始终返回EPERM
。文档甚至没有提到如何生成此错误。
docker run --privileged
解决了这个问题,但我想避免过多的权限,所以我只想设置必要的权限。
到目前为止,我尝试添加所有这些功能(即使是在同一时间)但没有成功:
我在这里错过了什么吗?
更新
此pull request正在审核中。
答案 0 :(得分:5)
seccomp
whitelist中未包含 statx
。
您可以使用--security-opt seccomp=/path/to/seccomp/profile.json
指定其他个人资料(可能是添加了此系统调用的个人资料)。
moby/moby#36417
为merged to master。
它应该包含在未来的夜间版本中,最终应该在Docker 18.04版本中。