Docker Cloud自动构build

我想了解通过Docker Cloud和其他CI服务器(如Jenkins,Circle)自动构build的主要区别…

从我通过Docker Cloud的理解中,我可以链接Github repo并触发特定分支更改的Web钩子。 这样做,通过适当的configuration,DockerCloud自动运行,testing和构build我的映像,并最终部署到AWS等链接的远程服务器。

因此,相同的工作stream程是可以实现的,并且使用Jenkins,Circle这样的CI服务器是常见的CI / CD实现。 基本上执行与DockerCloud相同的步骤。

使用Jenkins CI和Docker Cloud自动构build有什么区别?

我应该使用哪种方法将整个CI / CDpipe道集成到我的开发工作stream程中?

Docker Hubs的主要目标是提供一个你的代码的图像,可以很容易地分发给你的用户。 构build此映像非常简单,大多数服务可以连接到Docker Hub来下载此映像。

Docker Hub很慢,许多function都不见了,比如你不能放弃构build过程,也不能获得构build过程的实时输出。 这是一个完整的CI发挥作用,你有这些function。 而且它更适合testing和部署,因为您可以为testing(unit testing,集成testing…)或部署/生产阶段定义单独的任务。

像CircleCI这样的大多数CI可以被configuration为构build,testing和部署你的镜像到Docker Hub ,所以你不需要在Docker Hub上构build它。 我喜欢这个,因为正如我已经说过的,你无法控制Docker Hub本身的构build过程,当你不得不等待几分钟,直到你的唯一工作者完成任务时,这可能是非常烦人的。

因此,Docker Hub可用于构build图像,但缺less某些function,降低了testing图像的可用性。 因此,我build议使用完整的configuration项进行testing,然后触发Docker Hub(或configuration项本身)上的构build,以构build和发布您的生产就绪映像。 就个人而言,我正在使用CircleCI来testing我的图像,当我推动掌握一个生产就绪图像被build立并推送到Docker Hub。