几个月前我创建了一个dockerfile,它创建了一个带有不同包的几个anaconda python虚拟环境的linux映像。
由于某种原因,python35中的一个模块不能再导入(GDAL),这引发了一个更大的问题:如何在编写dockerfiles时包含测试?
我想测试模块是否按预期用于不同的python环境。某些模块在安装过程中不会抛出错误,但会有一些破坏的依赖关系,因此会进行测试。
首次导入测试已经有所帮助:
在python27中
import module1
import module2
..
import moduleN
在python35中
import module1
import module2
..
import moduleN
工作流程如下: 编译图像 - >运行测试 - >使用docker hub进行传播
如何在此工作流程中包含测试步骤?
[编辑]我在dockerfile中包含两行:
COPY test_python27.py /
RUN [ "/opt/anaconda3/envs/python27/bin/python", "./test_python27.py" ]
将运行python脚本。但是,docker日志不会捕获该脚本的输出。更重要的是,诸如ZeroDivisionError之类的错误不会导致构建失败。怎么解决这个问题?