我将 Quarkus 与 Flyway 一起使用,使用外部化 init 意味着我首先使用 QUARKUS_INIT_AND_EXIST 运行 quarkus 容器,然后再运行实际的运行时容器。运行飞行路线然后存在。我正在使用 helm 创建的带有预升级挂钩的作业来执行此操作。
但是,容器存在时为 1 而不是 0,因此 helm 认为它失败了。据我所知,飞行路线迁移是成功的,所以我不明白为什么 quarkus 会以 1 退出。
2023-10-11T14:41:56.805 D [main] io.quarkus.runtime.Application Shutting down with exit code 1
我的猜测是,由于没有要应用的新迁移(数据库已经是最新的),这可能是原因,但很难从日志中看出。
有什么想法可以调试这个吗?
很难说出哪里出了问题,但让我们尝试找出答案。
当使用
QUARKUS_INIT_AND_EXIST
时,Quarkus使用的退出代码为0。
预期输出应该是:
2023-10-12 07:29:00,045 INFO [io.quarkus] (main) hello-world stopped in 0.001s
即使没有新的迁移可用,Flyway 本身也不应该有问题。
所以,我猜测问题出在其他地方。
您可以更改日志记录设置,看看我们是否可以从中获取更多信息:https://quarkus.io/guides/logging
您可以尝试使用以下命令在本地运行调试:
QUARKUS_INIT_AND_EXIT=true java -jar target/quarkus-app/quarkus-run.jar