自动创建docker容器并启动python脚本

Puf*_*ter 5 automation docker

我正致力于创建一个自动化的单元测试系统,该系统将利用docker测试用Python编写的单个学生作业,对照单个单元测试文件.

我创建了一个网站,学生可以上传他们的作业,但我有点不确定如何通过Docker工作实现自动化.

工作流程看起来像这样:

  1. 学生上传作业标记
  2. 这被复制到包含docker的linux主机
  3. 该文件在等待测试时位于此处

所以,假设我有二十名学生上传.py文件,这些文件被命名为他们唯一的学生编号,我可以:

  1. 创建一个运行Ubuntu和Python的Docker容器
  2. 将学生文件和单元测试复制到此容器中
  3. 运行单元测试
  4. 将结果输出为文本文件
  5. 将此文本文件复制回我的网络服务器以显示结果

有人能指出我正确的方向来开始这种自动化吗?我真的只是在Docker方面的一些帮助之后,而不是将文件从我的网络服务器复制到Docker主机.

谢谢.

sve*_*ltr 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"]
Run Code Online (Sandbox Code Playgroud)

现在,您必须使用构建此图像docker build -t student_test ..

要启动脚本并获取输出,您可以使用:

docker run --volume /path/to/s12345.py:/student.py student_test > student_results_12345.txt`.
Run Code Online (Sandbox Code Playgroud)

--volume需要该参数,以将学生脚本装载到定义的装入点.此外,您可以一次启动多个容器.

所有路径都与当前工作目录相关.