在我的CIpipe道中使用docker-compose与codeship-services

我正在构build一个具有一些microservices的应用程序,并尝试使用CodeshipDockerCI/CDpipe道进行原型devise。

我有点混淆了使用codeship-services.ymldocker-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.ymlconfiguration。 对于我们的图像,caching对构build时间有很大的影响,所以我们一定要使用它。 就像Moema一样,我们在CI上需要很多辅助工具(我们不需要在本地)(AWS CLI,curl,testing框架,…)。 另一方面,我们经常在本地运行多个服务实例,这在Codeship中是不必要的。

将这两个文件都放在我们的项目中,使我们能够更容易地覆盖CI和本地开发的不同需求。