Spring boot 使用Testcontainers运行集成测试时执行Gitlab CI管道作业时出现问题
我有一个springboot应用程序测试,它使用TestContainers()对kafka容器运行一些集成测试。在本地运行时,一切正常,但在GitlabCI管道内运行集成测试时,容器无法启动。以下是作业日志: 这里是Gitlab CI conf:Spring boot 使用Testcontainers运行集成测试时执行Gitlab CI管道作业时出现问题,spring-boot,docker,gitlab-ci,testcontainers,Spring Boot,Docker,Gitlab Ci,Testcontainers,我有一个springboot应用程序测试,它使用TestContainers()对kafka容器运行一些集成测试。在本地运行时,一切正常,但在GitlabCI管道内运行集成测试时,容器无法启动。以下是作业日志: 这里是Gitlab CI conf: image: docker:git services: - docker:dind stages: - test - push - deploy variables: MAVEN_CLI_OPTS: "--batch-mode
image: docker:git
services:
- docker:dind
stages:
- test
- push
- deploy
variables:
MAVEN_CLI_OPTS: "--batch-mode -Dmaven.repo.local=/.m2"
DOCKER_HOST: "tcp://docker:2375"
DOCKER_DRIVER: overlay2
.test_template: &java_test
image: maven:3.5.3-jdk-8
stage: test
tags:
- test
myapp-api_test:
<<: *java_test
services:
- docker:dind
variables:
DOCKER_HOST: "tcp://docker:2375"
DOCKER_DRIVER: overlay2
script:
- cd myapp-api
- mvn $MAVEN_CLI_OPTS package
有什么帮助吗?
谢谢我知道你现在可能已经明白了这一点,但我会给你一个答案,以备将来其他人发现自己也遇到同样的问题时参考 我遇到了类似的问题,并通过为我的容器添加自定义等待策略和/或自定义超时来修复它。在我的机器上,它可以在本地正常工作,但在速度较慢的gitlab.com共享运行程序上,它会超时
Wait.forHttp("/health").withStartupTimeout(Duration.ofMinutes(5L))
executor = "docker"
[runners.docker]
tls_verify = false
image = "alpine:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/.m2",
"/var/run/docker.sock:/var/run/docker.sock"]
shm_size = 0
output_limit = 8192
Wait.forHttp("/health").withStartupTimeout(Duration.ofMinutes(5L))