在我的CIpipe道中使用docker-compose与codeship-services
我正在构build一个具有一些microservices
的应用程序,并尝试使用Codeship
和Docker
对CI/CD
pipe道进行原型devise。
我有点混淆了使用codeship-services.yml
和docker-compose.yml
。 Codeship文档说 –
默认情况下,我们查找文件名codeship-services.yml。 如果没有,Codeship会自动search一个docker-compose.yml文件来使用它。
根据我的理解,在我的情况下, docker-compose
可能更合适,因为我想同时为所有microservices
启动容器以进行集成testing。 codeship-services.yml
会帮助,如果我想build立我的服务连续而不是并行。
我的理解是正确的吗?
您可以像codeship-services.yml
一样使用codeship-services.yml
。 所以你可以定义你的服务,并通过link
键启动几个容器。
我在我的codeship-services.yml
完全一样。 我在我的前端服务上做了一些testing,当我通过codeship-steps.yml
运行服务时,服务将加速所有依赖的服务(后端,数据库等),就像在codeship-steps.yml
一样。
最开始的时候,有两个几乎相同的文件让我有些困惑。 我实际上已经联系了Codeship支持和答案,答案是它可能是相同的文件(因为撰写文件中的所有不可用的function都被忽略,请看这里 ),但几乎在所有情况下,他们已经看到有两个最后分开文件,一个用于CI / CD,一个用于运行docker-compose。
而对于我来说也是如此,因为我需要很多只用于configurationCI / CD的服务,或者只是进行cURLtesting的特殊testing容器。
我希望这会有所帮助,而不会让你更困惑;)
可以将codeship-services.yml
作为codeship-services.yml
的超集,因为codeship-services.yml
具有Docker Compose不提供的其他选项。 除此之外,它们完全相同。 两者都以相同的方式构build图像,并且都可以一次启动所有容器。
也就是说,我同意Moema的回答,在项目中同时存在两个文件,并根据他们的环境优化每个文件通常会更好。 例如,caching只能在codeship-services.yml
configuration。 对于我们的图像,caching对构build时间有很大的影响,所以我们一定要使用它。 就像Moema一样,我们在CI上需要很多辅助工具(我们不需要在本地)(AWS CLI,curl,testing框架,…)。 另一方面,我们经常在本地运行多个服务实例,这在Codeship中是不必要的。
将这两个文件都放在我们的项目中,使我们能够更容易地覆盖CI和本地开发的不同需求。