You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus开发模式下PostgreSQL容器无法随服务关闭问题

解决Quarkus DevServices PostgreSQL容器不随应用关闭的问题

问题原因

当你显式配置quarkus.datasource.devservices.port=5432固定端口时,Quarkus DevServices会默认将该PostgreSQL容器标记为持久化实例——固定端口通常被视为需要长期保留的环境,而非临时开发容器,因此不会随应用停止自动销毁。这和未指定固定端口时的默认行为(自动分配端口,容器与应用生命周期绑定)不同。

解决方案

方案1:移除固定端口配置(推荐,符合DevServices设计初衷)

删除quarkus.datasource.devservices.port=5432配置,让DevServices自动分配随机端口。此时容器会与应用生命周期完全绑定,应用关闭时容器将自动销毁。Quarkus会自动把端口信息注入应用配置,不影响开发时的数据库连接。

方案2:强制容器随应用关闭销毁(保留固定端口)

若必须保留固定端口,在application.properties中添加以下配置:

quarkus.datasource.devservices.destroy-at-shutdown=true

该配置会强制DevServices在应用停止时销毁对应的PostgreSQL容器,覆盖固定端口带来的持久化行为。

方案3:手动快速清理残留容器

如果需要临时清理运行中的残留容器,可执行以下Docker命令:

# 停止并删除Quarkus DevServices创建的PostgreSQL容器
docker rm -f $(docker ps -q --filter "name=quarkus-postgres")

若容器名称有变化,可通过标签精准筛选:

docker rm -f $(docker ps -q --filter "label=quarkus-dev-service=postgresql")

内容的提问来源于stack exchange,提问作者Keerthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:17:04