Quarkus 如何禁用自动启动的Docker测试容器?
触发原因
你遇到的是Quarkus 1.13版本后正式引入的**Dev Services(开发服务)**特性:在dev/test模式下,当框架检测到项目引入了数据库相关依赖,但没有配置对应数据源的连接信息时,会自动通过Testcontainers拉起对应数据库的Docker容器供开发测试使用,不需要人工部署配置。
禁用方案
你可以通过以下两种配置方式关闭该自动启动容器的行为,直接在application.properties中添加对应配置即可:
- 全局关闭所有Dev Services(包括数据库、消息队列、Redis等所有组件的自动容器启动):
quarkus.devservices.enabled=false
- 仅关闭PostgreSQL对应数据源的Dev Services,不影响其他组件的Dev Services功能:
# 单数据源场景使用该配置 quarkus.datasource.devservices.enabled=false # 多数据源场景,将<数据源名称>替换为你实际定义的数据源名称即可 quarkus.datasource.<数据源名称>.devservices.enabled=false
额外注意事项
- Dev Services默认仅在
dev和test环境下生效,生产打包运行时不会触发该逻辑,无需额外配置 - 如果你已经正确配置了当前运行环境的数据源连接地址、用户名、密码,Dev Services会自动停止生效,不会再自动启动容器,你可以检查下是否是dev环境的数据源配置存在遗漏、或者配置项未生效的情况
内容的提问来源于stack exchange,提问作者Shadowman
相关产品推荐
相关产品推荐

