我想创建一个chroot'ed、沙箱式的构建环境,在构建应用程序之前,先从Git签出中创建自己的环境,其中一个要求是,在主机上进行git签出和调用构建的开发人员不需要管理员权限。其中一个要求是,进行git检查和调用构建的开发人员不需要主机上的管理员权限。
unshare -r chroot
除了没有proc,这又意味着很多standeard的东西无法工作。我发现用mount创建proc的各种方法都需要sudo权限。
Docker可以做到这一点,但是开发者必须在 "docker "组中,这实际上给了他们不受控制的root权限--那么不如给他们sudo权限。
我已经找到了 "proot",它做了某种模拟来做到这一点。然而,这对性能有一定的影响。
你还需要一个能让你执行递归绑定挂载的挂载空间(以及没有子挂载的普通绑定挂载)。pivot_root
以及挂载tmpfs的能力,因此使用 unshare -rm
.
使用pid namesapce你也可以挂载procfs的新实例。