我想知道docker究竟是如何适应CI / CD的.
据我所知,在容器的帮助下,您可以专注于代码,而不是依赖/环境.但是,一旦您签入代码,您将期望TeamCity,Jenkins或Bamboo等工具负责集成构建,集成测试/单元测试以及部署到目标服务器(批准后),您希望运行相同的Docker容器映像构建的代码.
但是,在上述所有情况中,Docker无法进入CI / CD周期,尽管它在服务器上执行时会发挥作用.那么,为什么我会看到将它列为DevOps之一的文章.
我可能是错的,因为我不是DevOps大师,请指教!
最佳答案
Docker只是DevOps Engineers,DevOps从业者或任何您想要调用它们的工具. Docker所做的是将代码和代码依赖关系封装在一个单元(容器)中,可以在安装Docker引擎的任何地方运行.为什么这有用?出于多种原因;但就CI / CD而言,它可以帮助工程师将配置与代码分开,减少进行依赖管理所花费的时间等,可以使用它来扩展(当然,借助其他一些工具).名单还在继续.
原文链接:https://www.f2er.com/docker/435910.html例如:如果我有一个代码存储库,在我的构建脚本中,我可以引入特定于环境的依赖项来创建一个在每个环境中功能相同的Container,因为我从相同的源存储库构建,但它可以包含一组特定于环境的证书和配置文件等.
另一个例子:如果你有多个构建服务器,你可以创建一堆实用的Docker容器,可以在你的CI / CD管道中使用它来通过拉下一个Container在一个阶段做某事来做某个操作.对构建服务器的唯一依赖现在变为Docker Engine.您可以独立于其他实用程序容器执行的任何其他操作来更改,添加,修改这些实用程序容器.
说完所有这些,你可以做很多事情来在你的CI / CD管道中使用Docker.我认为理解Docker是什么,以及Docker可以做什么更重要的是“如何在CI / CD中使用Docker”指南.虽然存在一些常见的模式,但这些都归结为您试图解决的问题,并且某些模式可能不适用于某个用例.