go-judge icon indicating copy to clipboard operation
go-judge copied to clipboard

请问下本项目的沙箱是如何实现的

Open ppaet opened this issue 1 year ago • 1 comments

在接触本项目前,自己想设计个沙箱(针对java代码),想法是:每次打包jar包后新建docker容器,在容器中运行代码以确保宿主机的安全。但是这样的话,会创建出大量的容器,会严重影响性能。 想了解下本项目是如何实现沙箱功能,本项目在criyle/go-judge容器中运行代码,如何防止代码对容器中的文件做出修改,有用到哪些技术?

ppaet avatar Apr 10 '24 08:04 ppaet

Linux 下沙箱的具体实现请参照 criyle/go-sandbox 项目,也可阅读博客获取一点设计考量。容器中的文件系统默认为只读挂载防止修改。

criyle avatar Apr 10 '24 08:04 criyle