我的Python项目是作为容器部署的,并且还有单元测试。对于Docker最佳实践,最终映像应该排除仅用于测试的任何依赖项(例如pytest )。如何在仍然运行测试时排除测试依赖项?
一个问题是,如果我独立于部署映像构建测试环境,那么这两个环境最终可能包含不同版本的子依赖项。(假设我的项目使用rasterio,而rasterio和pytest都使用attrs,那么安装pytest可以更改包管理器安装的attrs版本。这表明错误可能出现在部署映像中,而不会出现在测试环境中。)如果最终映像中包含了测试依赖项,那么CI可以通过docker-compose build、docker-compose up