我正在使用配置有docker + machine执行器的Gitlab CI在现场实例上构建和测试我的应用。
我的主应用程序需要一些微服务才能在生产以及测试步骤中使用。所有这些微服务都在同一Gitlab CI服务器上构建和测试(每个都在自己的管道中)。所有微服务的输出都是被推送到Gitlab Docker注册表的Docker映像。
我要构建的测试步骤:
测试步骤
2.1。设置一个随应用docker安装的竞价型实例(如果没有空闲实例)
2.2。测试脚本
2.3。停止应用程序容器,释放竞价型实例
停止微服务容器,释放竞价型实例
我已经按照说明here工作了2.1、2.2、2.3,但是我不确定如何实现其余的内容。我可以在yaml中显式运行docker-machine,但是我想使用gitlab的docker + machine执行程序,因为它已配置了凭据,限制,非高峰设置等。
使用gitlab的执行程序可以吗?怎么样?
做这样的事情的“正确”方法是什么?我确定我不是第一个使用微服务进行测试的人,但是我找不到任何有关微服务的信息。
答案 0 :(得分:1)
您可能正在寻找CI Services functionality。他们有几个有关如何使用服务的示例(MySQL,PostgreSQL,Redis),或者如果您使用的是另一个Docker映像,则Docker服务的主机名将与docker映像名称(例如,tutum / wordpress将具有tutum-wordpress
和tutum__wordpress
的dns主机名,有关更多信息,请参阅details about hostnames)。
如果您愿意的话,还有关于running the postgres in the shell executor的详细信息,并且在Testing things with Gitlab CI and docker上有一个介绍。