gpt4 book ai didi

java - Dockerfile testcontainers 无法连接到 Ryuk

转载 作者:行者123 更新时间:2023-12-01 23:12:11 26 4
gpt4 key购买 nike

我尝试对我的 java spring 应用程序进行 docker 化。

在我的 build.gradle 中

implementation 'org.testcontainers:junit-jupiter'
implementation 'org.testcontainers:postgresql'

在我的测试文件中:

@SpringBootTest
class ApplicationTests {

@ClassRule
public static PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer("postgres:11.1")
.withDatabaseName("integration-tests-db")
.withUsername("sa")
.withPassword("sa");

static class Initializer
implements ApplicationContextInitializer<ConfigurableApplicationContext> {
public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
TestPropertyValues.of(
"spring.datasource.url=" + postgreSQLContainer.getJdbcUrl(),
"spring.datasource.username=" + postgreSQLContainer.getUsername(),
"spring.datasource.password=" + postgreSQLContainer.getPassword()
).applyTo(configurableApplicationContext.getEnvironment());
}
}

jetty 文件:

FROM adoptopenjdk/openjdk16:jdk-16.0.2_7-alpine-slim
MAINTAINER myapplication

ARG JAR_FILE=build/libs/myapplication-0.0.1-SNAPSHOT.jar

COPY ${JAR_FILE} myapplication-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/myapplication-0.0.1-SNAPSHOT.jar"]

然后我从终端运行:

docker build --no-cache  --tag=myapplication:latest .

docker run -v /var/run/docker.sock:/var/run/docker.sock -p8080:8080 myapplication:latest

毕竟我看到了一个错误:

2021-10-24 09:12:25.781 WARN [,,] 1 --- [containers-ryuk]o.testcontainers.utility.ResourceReaper : Can not connect to Ryuk at172.17.0.1:50582

java.net.ConnectException: Connection refused atjava.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na] atjava.base/sun.nio.ch.Net.pollConnectNow(Net.java:669) ~[na:na] atjava.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542)~[na:na] atjava.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)~[na:na] atjava.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)~[na:na] at java.base/java.net.Socket.connect(Socket.java:645)~[na:na] atorg.testcontainers.utility.ResourceReaper.lambda$null$1(ResourceReaper.java:189)~[testcontainers-1.16.0.jar!/:na] atorg.rnorth.ducttape.ratelimits.RateLimiter.doWhenReady(RateLimiter.java:27)~[duct-tape-1.0.8.jar!/:na] atorg.testcontainers.utility.ResourceReaper.lambda$start$2(ResourceReaper.java:185)~[testcontainers-1.16.0.jar!/:na] atjava.base/java.lang.Thread.run(Thread.java:831) ~[na:na]

我做错了什么?不幸的是,经过两天的挣扎,我已经无计可施了。

顺便说一句:我禁用了使用 gRPC FUSE 从 Docker 共享文件并且没有帮助。我使用 macOS。

最佳答案

在运行命令后添加 -e TESTCONTAINERS_HOST_OVERRIDE=docker.for.mac.host.internal

docker run -e TESTCONTAINERS_HOST_OVERRIDE=docker.for.mac.host.internal ...

关于java - Dockerfile testcontainers 无法连接到 Ryuk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69695411/

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