我正在构建一个具有几个 microservices
的应用程序,并尝试使用 CI/CD
和 Codeship
来构建 Docker
管道的原型(prototype)。
我对使用 codeship-services.yml
和 docker-compose.yml
之间的区别有点困惑。 Codeship 文档说 -
根据我的理解,docker-compose
可能更适合我的情况,因为我想同时为所有 microservices
启动容器以进行集成测试。如果我想串行而不是并行构建我的服务,codeship-services.yml
会有所帮助。
我的理解正确吗?
最佳答案
您可以以与 codeship-services.yml
相同的方式使用 docker-compose.yml
。因此,您可以通过 link
键定义您的服务并启动多个容器。
我在我的 codeship-services.yml
中做的完全一样。我对我的前端服务进行了一些测试,当我通过 codeship-steps.yml
运行它时,该服务会启动所有依赖的服务(后端、数据库等),就像在 docker-compose.yml
中一样。
一开始,我有 2 个几乎相同的文件,这让我有点困惑。我实际上就这个问题联系了 Codeship 支持,答案是它可能是同一个文件(因为 compose 文件中所有不可用的功能都被忽略了,请参阅 here )但在几乎所有情况下,他们都看到拥有两个更容易最后是单独的文件,一个用于 CI/CD,另一个用于运行 docker-compose。
对我来说也是如此,因为我需要很多仅用于 CI/CD 的服务,例如部署或仅进行 cURL 测试的特殊测试容器,例如..
我希望这会有所帮助并且不会让您更加困惑;)
关于docker - 在我的 CI 管道中使用 docker-compose 与 codeship-services,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46333040/