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

时间:2014-09-08 04:44:16

标签: automation docker

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

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

工作流程看起来像这样:

  1. 学生上传标记作业
  2. 将其复制到包含docker
  3. 的linux主机
  4. 文件在等待测试时就在这里
  5. 所以,说我有二十个学生上传.py文件,命名为他们唯一的学生编号,我可以:

    1. 创建一个运行Ubuntu和Python的Docker容器
    2. 将学生档案和单元测试复制到此容器中
    3. 运行单元测试
    4. 将结果输出为文本文件
    5. 将此文本文件复制回我的网络服务器以显示结果
    6. 有人能指出我正确的方向来开始这种自动化吗?我真的只是在Docker方面的一些帮助之后,而不是将文件从我的网络服务器复制到Docker主机。

      感谢。

2 个答案:

答案 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创建泊坞窗图像。如果你让它发挥作用,那就是疯狂但又干净利落的想法。