首页 > 解决方案 > Gitlab CI with docker+machine - 使用多个容器测试应用程序

问题描述

我正在使用配置了 docker+machine 执行器的 Gitlab CI 在现场实例上构建和测试我的应用程序。

我的主应用程序需要一些微服务才能在生产和测试步骤中使用。所有这些微服务都是在同一个 Gitlab CI 服务器中构建和测试的(每个都在自己的管道中)。所有微服务的输出都是推送到 Gitlab Docker Registry 的 docker 镜像。

我正在尝试构建的测试步骤:

  1. 提供一个 Spot 实例(如果没有空闲实例),与微服务 docker 一起安装
  2. 测试步骤

    2.1。预配一个 Spot 实例(如果没有空闲实例),与应用程序 docker
    2.2 一起安装。测试脚本
    2.3. 停止应用容器,释放现场实例

  3. 停止微服务容器,释放现场实例

按照此处的说明,我可以使用 2.1、2.2、2.3,但我不确定如何实现其余的。我可以在 yaml 中显式运行 docker-machine,但我想使用 gitlab 的 docker+machine 执行器,因为它配置了凭据、限制、非高峰设置等。

这可能与 gitlab 的执行者有关吗?如何?

做这样的事情的“正确”方法是什么?我确定我不是第一个使用微服务进行测试的人,但我找不到任何有关如何进行测试的信息。

标签: dockergitlabmicroservicesgitlab-cidocker-machine

解决方案


您可能正在寻找 CI服务功能。他们有几个关于如何使用服务(MySQLPostgreSQLRedis)的示例,或者如果您使用另一个 docker 映像,则 docker 服务将具有与 docker 映像名称相同的主机名(例如,tutum/wordpress 将具有的 dns 主机名tutum-wordpresstutum__wordpress,有关更多信息,请参阅有关主机名的详细信息)。

如果您愿意的话,还有关于在 shell 执行程序中运行 postgres 的详细信息,并且有一个关于使用 Gitlab CI 和 docker 进行测试的演示文稿。


推荐阅读