自动创建 Docker 容器并启动 Python 脚本

6
我正在创建一个自动化单元测试系统,将利用Docker来测试Python编写的单个学生作业与单元测试文件。我创建了一个网站,学生可以在上面上传他们的作业,但我对如何使Docker自动化测试有些不确定。
工作流程如下:
1. 学生上传待评分的作业 2. 该文件被复制到包含Docker的Linux主机上 3. 文件在此等待测试
那么,假设有20名学生上传了以其独特的学号命名的 .py 文件,我能否:
1. 创建一个运行Ubuntu和Python的Docker容器 2. 将学生文件和单元测试文件复制到此容器中 3. 运行单元测试 4. 将结果输出为文本文件 5. 将此文本文件复制回我的Web服务器以显示结果
请问有人能指点我一下如何开始进行这项自动化吗?我真的只需要一些Docker方面的帮助,而不是将文件从我的Web服务器复制到Docker主机上。
谢谢。
2个回答

6
是的,可以使用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 参数是必需的,用于将学生脚本挂载到定义的挂载点。此外,您可以同时启动多个容器。
所有路径都相对于当前工作目录。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接