需要在GitLab CI/CD中协调多个容器的测试 [英] Tests that require orchestration of multiple containers in GitLab CI/CD

查看:16
本文介绍了需要在GitLab CI/CD中协调多个容器的测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在考虑将构建和测试Docker/OCI映像的遗留管道移植到GitLab CI/CD中。我在Kubernetes集群中已经有一个GitLab Runner,并且它注册到了一个GitLab实例。测试特定映像需要在内部运行某些命令(用于运行单元测试等)。假设这可以由作业my_test建模,如下所示:

my_test:
  stage: test
  image: my_image_1
  script:
  - my_script.sh
但是,这些测试不是完全自包含的,但还需要第二个容器(即数据库)的存在。一开始,我可以想象一种可能不太理想的方法来处理此问题(还必须有一些逻辑来等待my_image2启动,并且有一种方法让kubectl获得足够的凭据):

  before_script: kubectl deployment create my_deployment2 ...
  after_script: kubectl delete deployment my_deployment2 ...

我是GitLab CI/CD的新手,所以我想知道:对这样的测试建模的最佳实践是什么,即测试需要编排多个容器的情况?(这是否适合GitLab作业的范围,或者最好将其委派给my_test可以对话的其他软件?)

推荐答案

您的第一眼应该在Services

使用服务,您可以启动运行MySQLPostgres的容器,并运行将连接到该容器的测试。

这篇关于需要在GitLab CI/CD中协调多个容器的测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆