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

Docker容器中Quarkus运行时动态设置OpenAPI服务器地址

解决Quarkus OpenAPI服务器地址绑定Docker容器HOSTNAME的问题

方法一:利用Quarkus属性占位符直接绑定环境变量

Quarkus支持在配置文件中直接引用系统/环境变量,无需修改Dockerfile。只需在application.properties(或application.yml)中添加如下配置:

quarkus.smallrye-openapi.servers=http://${HOSTNAME:localhost}:8080

其中:localhost是备选默认值,当容器内HOSTNAME变量不存在时会自动 fallback 到该值。容器启动后,Quarkus会自动读取环境变量并替换占位符,将OpenAPI的服务器地址设置为容器主机名。

方法二:通过Dockerfile配置启动参数

如果不想修改应用配置文件,可在Dockerfile中通过启动命令传递参数,让Quarkus运行时读取容器的HOSTNAME变量:

# 使用shell形式的CMD,让容器运行时自动展开HOSTNAME变量
CMD java -jar /path/to/your-quarkus-app.jar -Dquarkus.smallrye-openapi.servers=http://$HOSTNAME:8080

注意:不要用Docker的ENV指令绑定HOSTNAME,因为ENV是构建阶段的变量,无法获取容器运行时的主机名。必须用shell形式的启动命令,依赖shell环境展开$HOSTNAME。

优先级说明

Quarkus的配置优先级为:命令行传递的-D参数 > 配置文件中的占位符配置。如果同时使用两种方式,命令行参数会覆盖配置文件的设置。

内容的提问来源于stack exchange,提问作者tomasz-mer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:22:33