1

我想从 GitLab 中的一个 repo 构建和测试多个 docker。这个 monorepo 包含一些协同工作的微服务。
我们有一项工作docker compose up可以帮助本地开发人员,所以这就是一个开始。目标是将构建 + 测试移至 GitLab,运行这些 docker 的 E2E 测试(端到端),并让 GitLab 升级我们的暂存环境。

多个 docker 的构建只是(一个)管道的构建阶段中的多个作业,我猜每个 docker 都可以进行测试,这使得在(或?)暂存环境中运行多个 docker 来测试整个。

  1. GitLab 如何在多个 docker 上运行 E2E 测试?(或者这是不明智的开始)

  2. 我们是否需要 Kubernetes 来实现 docker-compose 现在促进的 docker 间映射(网络、卷以及依赖项)?

我们正在使用一个自托管的 GitLab CE 实例。

更新:缩短,使用适当的术语。

4

2 回答 2

1

我没有研究过 PHP,也从未为多模块做过 Docker 构建,尽管我尝试了一个用于 Nodejs 的多模块类型的快速示例。检查这个回购

参考.gitlab-ci.yml构建两个独立的 hello world 类型的 nodejs 模块。

我现在对此进行了调整,以分别构建 docker 映像。

原始答案(问题于 7 月 12 日更改)

您还没有提到您所指的文档。您应该能够使用.gitlab-ci.yml

AFAIK 构建 docker 映像应该与编程语言无关。如果您可以docker build .在本地运行。以下文档应该有助于 https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

您可以使用 Gitlab 管道来测试 <-> 构建图像。参考https://docs.gitlab.com/ee/ci/pipelines.html

请参阅此进行 PHP 构建 - https://docs.gitlab.com/ee/ci/examples/php.html

于 2018-07-09T11:20:46.600 回答
0

回答我自己的问题,2年后的经验。

  • 对于普通(单个项目/服务)存储库,CI 很简单。
  • 对于 monorepo,端到端测试很简单。

您可以通过将 repo 与子模块结合起来,基本上两者兼而有之。但这可能会导致开销,如果持续进行并且主要用于校对 beta/alpha 和发布候选者。

如果您知道更多选项,请随时在此处添加。

于 2020-12-23T14:08:03.800 回答