摘要

在LeetCode、ACWing等各大OnlineJudge网站中,每时每刻都有无数的代码在编译运行。但这些网站上提交的代码都是为了解决该网站题库中给定的某一道算法题,不仅规定了程序的标准输入输出,还限制了运行时长和内存占用,有一定局限性。在新冠疫情期间,开设计算机课程的大学也急需搭建符合学校教学需求的OnlineJudge以正常开展线上课程。针对上述两个问题,文章设计并实现了基于Docker技术的Online Judge容器。其能编译程序源代码和运行程序二进制文件,期间能动态地更改程序的标准输入、运行时长与内存占用,并对容器作了一定的防护,具有一定的安全性,还易于分布式拓展。