运行测试时是否应该复制生产环境(docker 镜像、依赖项等)?
问题是因为如果我正在复制生产环境,我如何获得像 phpunit 和 phpstan 这样的 Composer 开发包?
这方面的最佳做法是什么?
最佳答案
Should I replicate the production environment (docker image, dependencies, etc) when running tests?
对此的直接回答是肯定的。通过在测试环境中复制生产环境意味着您可以限制仅在一个特定环境中发生的问题在生产中困扰您。
话虽如此,但很多时候让您的测试环境与生产环境完全相同是不合适的。例如。对于 Web 服务,您不能(轻松地)在 CI 中针对生产域名运行测试。
Docker 使您可以更轻松地在 SDLC 的其他部分使用生产环境,例如开发和 CI。我建议让您的生产环境的 docker 镜像对项目中的所有工作人员(开发人员、QA 等)可用。会有一些示例,人们想要离开生产 docker 镜像,例如,安装应该无法投入生产。
总而言之,在测试/开发环境中使用生产 docker 镜像(和依赖项)将使您对产品在生产中的表现更有信心。这将减少您的上市时间和生产中的环境问题。
关于docker - 在做 CI 运行测试时,我应该使用 production docker build 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187013/