【问题标题】:execute testcontainer integration test in gitlab pipeline在 gitlab 管道中执行 testcontainer 集成测试
【发布时间】:2021-05-15 12:15:08
【问题描述】:

我对 GitLab 和 docker 还很陌生,我有一个由几个步骤组成的管道

对于 Maven 构建,我使用的 junit 测试阶段 image: maven:3-jdk-8 - 并在脚本部分添加适当的 maven 命令

对于我使用的 docker 构建和部署阶段 image: docker:latest - 并在脚本部分添加适当的 docker 命令

现在 - 我想包含基于 testcontainers 的集成测试,这意味着我至少需要执行一些 docker 命令和 mvn 命令。那么上述图像都不合适,我的脚本的某些部分失败了。 docker: command not found 或 mvn: command not found.

这是否意味着我必须构建并部署到 docker hub 我自己的包含所需依赖项的映像?寻找这样的图像,但没有找到它。或者也许有更简单的解决方案?感谢您的任何回答。

【问题讨论】:

    标签: image docker maven gitlab testcontainers


    【解决方案1】:

    您是否尝试过 Testcontainers documentation 中描述的方法?因此,在您的情况下,提供的 .gitlab-ci.yml 示例如下所示:

    # DinD service is required for Testcontainers
    services:
      - docker:dind
    
    variables:
      # Instruct Testcontainers to use the daemon of DinD.
      DOCKER_HOST: "tcp://docker:2375"
      # Improve performance with overlayfs.
      DOCKER_DRIVER: overlay2
    
    test:
     image: maven:3-jdk-8
     stage: test
     script: mvn clean verify
    

    【讨论】:

    • 是的,这正是我所做的。在这种情况下,我在“测试”阶段得到:“docker: command not found”。
    • 为什么在集成测试阶段明确需要docker 命令?通常,testcontainers 库只需要 docker 守护进程,而不是命令本身。容器是在 java 代码的帮助下启动的,而不是 docker 命令。
    • 如果没有 docker 命令,你如何登录到你的注册表?
    猜你喜欢
    • 1970-01-01
    • 2019-09-05
    • 2019-07-25
    • 2022-10-24
    • 2019-04-04
    • 2019-11-24
    • 2021-11-05
    • 2017-09-30
    • 1970-01-01
    相关资源
    最近更新 更多