gpt4 book ai didi

java - 如何使用 docker 运行 undertow java 应用程序

转载 作者:行者123 更新时间:2023-12-02 18:16:02 29 4
gpt4 key购买 nike

我正在为我的 docker 应用程序使用 undertow。

我可以做到以下几点

  1. 创建 fat jar

  2. 从中创建 docker 镜像

  3. 运行那个 docker 镜像

  4. 在 8080 上列出并在 Docker 文件中添加 EXPOSE 8080

  5. 从容器内部 curl 我的 url, curl localhost:8080/sample

我遇到了一些奇怪的问题,

我的撰写文件是

version: '2'
services:
login:
image: my-image
ports:
- "8080:8080"

使用 8080 端口我无法访问该 url。

我的 Dockerfile

FROM openjdk:8-jre
COPY ./target/*-with-dependencies.jar /jars/service-jar.jar
EXPOSE 8080
CMD java -cp /jars/service-jar.jar my.Main

我的听众

Undertow server = Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler(path)
.build();

我在谷歌中找到了一些链接仍然无法正常工作

http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html

最佳答案

通过监听 docker 容器 ip 地址的 ip 解决了这个问题。

我把我的听众改成了

Undertow server = Undertow.builder()
.addHttpListener(8080, InetAddress.getLocalHost().getHostAddress())
.setHandler(path)
.build();

现在它工作正常。

"The external IP is something completely different. So in summary you must set the host server for undertow as the Internal IP in the Iptables created by docker"

我错过了在我的引用链接 ( http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html ) 中阅读这一行。

我的老板发现了。

关于java - 如何使用 docker 运行 undertow java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647948/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com