我正致力于创建一个自动化的单元测试系统,该系统将利用docker测试用Python编写的单个学生作业,针对单个单元测试文件。
我创建了一个网站,学生可以上传他们的作业,但我有点但不确定如何通过Docker实现自动化。
工作流程看起来像这样:
所以,说我有二十个学生上传.py文件,命名为他们唯一的学生编号,我可以:
有人能指出我正确的方向来开始这种自动化吗?我真的只是在Docker方面的一些帮助之后,而不是将文件从我的网络服务器复制到Docker主机。
感谢。
答案 0 :(得分:5)
是的,可以使用Docker。
Dockerfile
看起来像这样:
FROM ubuntu
MAINTAINER xxx <user@example.org>
# update ubuntu repository
RUN DEBIAN_FRONTEND=noninteractive apt-get -y update
# install ubuntu packages
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install python python-pip
# install python requirements
RUN pip install ...
# define a mount point
VOLUME /student.py
# define command for this image
CMD ["python","/student.py"]
现在,您必须使用docker build -t student_test .
构建此图像。
要启动脚本并获取输出,您可以使用:
docker run --volume /path/to/s12345.py:/student.py student_test > student_results_12345.txt`.
需要--volume
参数,以将学生脚本挂载到定义的挂载点。此外,您可以一次启动多个容器。
所有路径都与当前工作目录相关。
答案 1 :(得分:2)
签出以下项目
使用Heroku buildpacks创建泊坞窗图像。如果你让它发挥作用,那就是疯狂但又干净利落的想法。