docker - Gitlab CI with docker+machine - 使用多个容器测试应用程序
问题描述
我正在使用配置了 docker+machine 执行器的 Gitlab CI 在现场实例上构建和测试我的应用程序。
我的主应用程序需要一些微服务才能在生产和测试步骤中使用。所有这些微服务都是在同一个 Gitlab CI 服务器中构建和测试的(每个都在自己的管道中)。所有微服务的输出都是推送到 Gitlab Docker Registry 的 docker 镜像。
我正在尝试构建的测试步骤:
- 提供一个 Spot 实例(如果没有空闲实例),与微服务 docker 一起安装
测试步骤
2.1。预配一个 Spot 实例(如果没有空闲实例),与应用程序 docker
2.2 一起安装。测试脚本
2.3. 停止应用容器,释放现场实例停止微服务容器,释放现场实例
按照此处的说明,我可以使用 2.1、2.2、2.3,但我不确定如何实现其余的。我可以在 yaml 中显式运行 docker-machine,但我想使用 gitlab 的 docker+machine 执行器,因为它配置了凭据、限制、非高峰设置等。
这可能与 gitlab 的执行者有关吗?如何?
做这样的事情的“正确”方法是什么?我确定我不是第一个使用微服务进行测试的人,但我找不到任何有关如何进行测试的信息。
解决方案
您可能正在寻找 CI服务功能。他们有几个关于如何使用服务(MySQL、PostgreSQL、Redis)的示例,或者如果您使用另一个 docker 映像,则 docker 服务将具有与 docker 映像名称相同的主机名(例如,tutum/wordpress 将具有的 dns 主机名tutum-wordpress
和tutum__wordpress
,有关更多信息,请参阅有关主机名的详细信息)。
如果您愿意的话,还有关于在 shell 执行程序中运行 postgres 的详细信息,并且有一个关于使用 Gitlab CI 和 docker 进行测试的演示文稿。
推荐阅读
- jenkins - 我如何为不同的作业配置必须在不同的虚拟机或从属设备上并行运行
- sqlite - Sqlite3:高级 SELECT 查询
- json - 如何在颤动中将对象转换为json?
- amazon-web-services - AWS API Gateway 集成响应 - 当响应包含新行时,Lambda 错误正则表达式匹配失败
- laravel - 创建资源后找不到 Laravel Nova App\Model
- git - 在 gitignore 中添加一个目录,该目录包含在本地和远程的 git 中
- sql - Postgresql 日期的具体时间
- autohotkey - {} 使我的显示设置在 AHK 脚本中弹出
- html - 移动设备上的视图宽度 100% 超过 100% [React]
- ios - 设置首选项“前提条件失败:无效输入索引:2”时 SwiftUI 崩溃