我正致力于创建一个自动化的单元测试系统,该系统将利用docker测试用 Python编写的单个学生作业,对照单个单元测试文件. 我创建了一个网站,学生可以上传他们的作业,但我有点不确定如何
我创建了一个网站,学生可以上传他们的作业,但我有点不确定如何通过Docker工作实现自动化.
工作流程看起来像这样:
>学生上传作业标记
>这被复制到包含docker的linux主机
>文件在等待测试时就在这里
所以,假设我有二十名学生上传.py文件,这些文件被命名为他们唯一的学生编号,我可以:
>创建一个运行Ubuntu和Python的Docker容器
>将学生文件和单元测试复制到此容器中
>运行单元测试
>将结果输出为文本文件
>将此文本文件复制回我的网络服务器以显示结果
有人能指出我正确的方向来开始这种自动化吗?我真的只是在Docker方面的一些帮助之后,而不是将文件从我的网络服务器复制到Docker主机.
谢谢.
是的,可以使用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参数,以将学生脚本装载到定义的装入点.此外,您可以一次启动多个容器.
所有路径都与当前工作目录相关.