一、文献综述
- 国内外研究现状
学生课程项目是各高校计算系实践课程的重要考核指标之一,通过一学期课堂所学理论知识,以个人或者团队合作的方式设计开发出一款具有实际意义的功能项目,可以很有效的考察学生的编码能力和实践水平,为以后参加正式工作打下扎实的基础。然而,如何高效的管理学生项目,成为了一大较难解决的技术难题。
目前国内外大多数高校的课程项目管理系统是B/S开发结构,学生和教师只要连接网络就能随时从Web端登入使用,随时随地访问,十分方便。
在国内,大多数高校都会有自己的项目管理系统,由教师周期性的在系统上发布教学任务,学生获取任务信息后开始编码开发,并将最终成果以压缩包等形式上传系统,给教师检查。这类系统较为完善的满足了教师发布课任务的需求,但在检验项目成果时却做的不够完善。由于不同程序运行时所需的环境不同,教师往往很难在自己的机器上成功运行所有的学生项目,因此,在各大高校的项目考核上,往往会多出一个实机演示的环节。由学生在自己的本地环境运行项目,不能交由教师来高效率的审核系统。项目管理系统最终提交的目的往往变成了备份代码。
在国外,高校的项目管理系统,通过各种容器化,虚拟化技术,屏蔽了不同项目底层环境的差异,教师可以实时的运行学生提交的项目,进而随时了解到学生的开发进度,极大优化了学生与教师之间的项目审查成本,提高了教师对学生项目的管理能力,增强教学质量。
(二)研究主要成果
我针对学生项目管理实时运行学生项目这一功能展开研究,着重调研了世界上一些成熟容器化项目,最终确定借助 docker 来完成实时教师运行学生项目的功能需求。
Docker 是Docker.Inc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。它主要具备以下功能:
1. 隔离应用的依赖和环境
