gpt4 book ai didi

java - 使用 testcontainer 作为 Dockerfile 的一部分运行测试

转载 作者:行者123 更新时间:2023-12-01 17:37:20 24 4
gpt4 key购买 nike

我的 dockerfile 看起来像这样:

FROM maven:3-jdk-11-slim
COPY pom.xml .
COPY src src
RUN mvn clean install

这意味着构建的一部分是单元测试的执行。一些单元测试使用测试容器。运行mvn clean install在我的本地计算机上工作正常,但运行 docker build . -t my-app不会,因为测试容器不会启动。

(...)
15:54:38.793 [ducttape-0] DEBUG org.testcontainers.dockerclient.DockerClientProviderStrategy - Pinging docker daemon...
15:54:38.794 [ducttape-0] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: org.testcontainers.dockerclient.transport.okhttp.OkHttpDockerCmdExecFactory$1@355cb260
15:54:39.301 [ducttape-0] DEBUG org.testcontainers.dockerclient.DockerClientProviderStrategy - Pinging docker daemon...
15:54:39.301 [ducttape-0] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: org.testcontainers.dockerclient.transport.okhttp.OkHttpDockerCmdExecFactory$1@1c1a1359
15:54:39.469 [main] ERROR 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
org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
(...)

我见过运行docker run的例子使用工作测试容器,但我如何制作我的 docker build工作?

非常感谢您的帮助。

最佳答案

供将来引用:我相信这是不可能的。

docker run允许您使用 -v/var/run/docker.sock:/var/run/docker.sock 挂载 Docker 套接字(从而访问主机的 Docker 守护进程)。

docker build不支持这样的论点。

我的解决方法是将我的 Dockerfile 修改为RUN mvn clean install -Dmaven.test.skip=true 并单独运行单元测试。

关于java - 使用 testcontainer 作为 Dockerfile 的一部分运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61015787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com