我想在GitLab的一个仓库中构建和测试多个docker。这个monorepo拥有一些可以协同工作的微服务。
我们有一个docker compose up
可以为本地开发人员提供帮助的工作,因此就此开始。
目标是将构建+测试迁移到GitLab,对这些Docker运行E2E测试(端到端),并让GitLab升级我们的暂存环境。
构建多个docker只是(一个)管道构建阶段的多个工作,我想每个docker都可以进行测试,这使得在(或?)临时环境中运行的多个docker进行了整体测试。 / p>
GitLab如何在多个docker上运行E2E测试? (否则这是不明智的)
我们是否需要Kubernetes来实现docker-compose现在促进的docker间映射(网络,卷以及依赖项)?
我们正在使用一个自托管的GitLab CE实例。
更新:请缩短文字,使用适当的术语。
答案 0 :(得分:1)
我没有使用PHP,也从未为多模块进行Docker构建,尽管我为Node.js尝试了一个多模块类的快速示例。选中此Repo
请参阅.gitlab-ci.yml,它构建了两种独立的hello世界类型的nodejs模块。
我现在对此进行了修改,以分别构建docker映像。
原始答案(问题于7月12日更改)
您没有提到您要参考的文档。您应该可以使用.gitlab-ci.yml
AFAIK Building 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
答案 1 :(得分:0)
回答我自己的问题,2 年后的经验。
您可以通过使用带有子模块的 repo 来组合这些方面,本质上两者兼而有之。但是,如果持续进行并且对于验证 beta/alpha 和发布候选者非常有用,这可能会导致开销。
如果您知道更多选项,请随时在此处添加。