Quarkus:开发服务固定端口对我不起作用

问题描述 投票:0回答:0

我在用:

  • Windows 10
  • 适用于 Windows 的 Docker
  • Quarkus 3.0.0.Beta

我想在 quarkus 3.0.0.Beta 中使用 mariadb 和 固定端口 启动 quarkus 开发服务。我在我的

application.properties
中使用以下配置:

quarkus.datasource.devservices.enabled=true
quarkus.datasource.devservices.image=mariadb
quarkus.datasource.devservices.port=3456

quarkus.datasource.url=${QUARKUS_DATASOURCE_URL}
quarkus.datasource.db-kind=mariadb
quarkus.datasource.username=root
quarkus.datasource.password=

我的 gradle 构建中有以下依赖项:

org.mariadb.jdbc:mariadb-java-client:3.1.2
io.quarkus:quarkus-jdbc-mariadb:3.0.0.Beta1
io.quarkus.platform:quarkus-bom:3.0.0.Beta1

容器在我启动 quarkus dev 时启动,但过了一会儿就崩溃了,quarkus 应用程序没有完成启动并出现以下错误:

2023-03-28 19:31:36,244 INFO  [doc.io/.6]] (build-49) Waiting for database connection to become available at jdbc:mariadb://localhost:3456/quarkus using query 'SELECT 1'
2023-03-28 19:33:36,352 ERROR [doc.io/.6]] (build-49) Could not start container: java.lang.IllegalStateException: Container is removed
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:496)
    at org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:344)
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:334)
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:322)
    at io.quarkus.devservices.mariadb.deployment.MariaDBDevServicesProcessor$1.startDatabase(MariaDBDevServicesProcessor.java:67)
    at io.quarkus.datasource.deployment.devservices.DevServicesDatasourceProcessor.startDevDb(DevServicesDatasourceProcessor.java:284)
    at io.quarkus.datasource.deployment.devservices.DevServicesDatasourceProcessor.launchDatabases(DevServicesDatasourceProcessor.java:136)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909)
    at io.quarkus.builder.BuildContext.run(BuildContext.java:282)
    at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at java.base/java.lang.Thread.run(Thread.java:833)
    at org.jboss.threads.JBossThread.run(JBossThread.java:501)

2023-03-28 19:33:36,357 ERROR [doc.io/.6]] (build-49) There are no stdout/stderr logs available for the failed container

当我在 docker 中再次手动启动容器时,它正确启动并在端口 3456 上正确侦听,我可以连接到它。

quarkus testcontainers
© www.soinside.com 2019 - 2024. All rights reserved.