带有docker + machine的Gitlab CI-使用多个容器测试应用

时间:2019-04-26 14:41:58

标签: docker gitlab microservices gitlab-ci docker-machine

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

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

我要构建的测试步骤:

  1. 提供一个随微服务一起安装的竞价型实例(如果没有空闲实例) 码头工人
  2. 测试步骤

    2.1。设置一个随应用docker安装的竞价型实例(如果没有空闲实例)
    2.2。测试脚本
    2.3。停止应用程序容器,释放竞价型实例

  3. 停止微服务容器,释放竞价型实例

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

使用gitlab的执行程序可以吗?怎么样?

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

1 个答案:

答案 0 :(得分:1)

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

如果您愿意的话,还有关于running the postgres in the shell executor的详细信息,并且在Testing things with Gitlab CI and docker上有一个介绍。