关于docker工具,testing环境和开发工作stream程的查询

我是QA自动化工程师,我正在调查docker作为运行testing的潜在方式。

传统上,我们已经遵循了git flow方法,其中主要是你有一个开发者和一个主分支的地方。 开发人员不断将他们的新变化合并到开发分支。 当我们想要发布的时候,我们将会有一个代码被截断,目前在dev分支上的所有东西都被认为是下一个版本的一部分。 然后运行脚本来创build候选版本,并将其部署到分段。 需要完成的任何修复都会发布到发行版分支,一旦准备好发布,新的代码将被合并到主控和部署中。 师父合并到所有分支,以便一切都是最新的。 (在这里更详细地描述: http : //nvie.com/posts/a-successful-git-branching-model/ )。

所以我的问题是与docker,你需要有这个工作stream程? 我想可能有一个工作stream程如下所述:

  • 开始开发一个新的function。
  • Dev拉师傅,创buildfunction分支 – 做他的开发工作 – unit testing通过,dev开心工作去QA
  • Dev运行脚本来创build候选版本(如果新代码已经被另一个开发者合并为主版本,这将涉及再次拉动主版本),
  • 然后Docker将一个包含多个容器的容器(前端应用程序,数据库实例等)
  • 然后针对这个候选版本运行testing(单元,API,selenium集成等),如果好的话部署到生产环境。

那么我需要一个传统意义上的env env吗?

我认为你正在合并两件事情:持续集成环境和分期环境。 Docker确实可以轻松地为整个堆栈提供一个新的实例来进行持续集成(请参阅无人机示例),但通常您仍然需要一个临时环境,在部署到产品之前始终可以对其进行testing。 这个临时环境应该运行相同的docker映像,最终被部署到prod。