如何让 Quarkus 监听所有网络接口而不是本地主机?

How to make Quarkus to listen on all network interfaces instead of localhost?

当我 运行 我的 Quarkus 应用程序时,默认情况下它 listens/binds 仅到本地主机。

我怎样才能改变这种行为?

更新

在 Quarkus 中包含 this PR,从版本 0.12.0 开始,将不再需要下一节中解释的配置,因为 Quarkus 将使用 0.0.0.0 作为默认设置主持人。


默认情况下,Quarkus 仅侦听本地主机 (127.0.0.1)。要让 Quarkus 监听所有网络接口(这非常方便,例如当 Docker 容器或 Kubernetes Pod 中的 运行 时),需要设置 quarkus.http.host 属性 .

如果您始终希望您的 Quarkus 应用程序监听您可以设置的所有接口 quarkus.http.host=0.0.0.0 在你的 application.properties 中(在 src/main/resources 之下)。

如果您希望保留默认设置并且只在运行时覆盖,您可以按如下方式进行:

当 运行 Quarkus 应用程序处于 JVM 模式时,您可以使用 quarkus.http.host 系统 属性 将端口设置为 0.0.0.0。 例如:

java -Dquarkus.http.host=0.0.0.0 -jar example-runner.java

同样 属性 适用于 GraalVM 本机模式图像。 例如:

./example-runner -Dquarkus.http.host=0.0.0.0