【发布时间】:2020-04-22 02:13:37
【问题描述】:
如何在 docker 容器中运行基于 @Testcontainers 的测试用例?
我有一个简单的 Spring Boot 应用程序,它具有使用 Testcontainers 与容器交互的集成测试(组件级别)。测试用例从外部容器(本地机器)破坏得很好。
我们在容器中运行所有内容,并且构建在 docker jenkins 映像上运行。
Docker 文件正在创建 jar,然后是图像。 @Testcontainers 找不到安装的 docker。
下面是我的码头文件。
FROM maven:3.6-jdk-11-openj9
VOLUME ["/var/run/docker.sock"]
RUN apt-get update
RUN apt-get -y install docker.io
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN mvn -Dmaven.repo.local=/root/m2 --batch-mode -f pom.xml clean package
EXPOSE 8080
CMD ["/bin/bash"]
运行构建时出现以下错误
org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy - ping failed with configuration Environment variables, system properties and defaults. Resolved dockerHost=unix:///var/run/docker.sock due to org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
处理这种情况的最佳方法是什么?我想在 mvn 构建阶段使用 docker 文件运行我的组件级集成测试。
以下参考对我没有帮助。 https://www.testcontainers.org/supported_docker_environment/continuous_integration/dind_patterns/
【问题讨论】:
-
这应该如何工作?这意味着您需要在 docker 容器中使用 docker。你不应该在这种情况下使用 TestContainers
-
对于我的集成测试,我依赖于几个容器化应用程序(例如数据库和更多),'Testcontainers 本身可以从容器内部使用'-> 这是来自那里的网站
标签: testcontainers