无法在Windows 10的Docker中运行Spring Boot应用程序(获取ERR_EMPTY_RESPONSE)? [英] Cannot run Spring Boot aplication in Docker (Getting ERR_EMPTY_RESPONSE) in Windows 10?

查看:42
本文介绍了无法在Windows 10的Docker中运行Spring Boot应用程序(获取ERR_EMPTY_RESPONSE)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Spring Boot应用程序Docker中运行时出现问题。

这是我的Dockerfile嵌入我的应用程序中,如下所示。

FROM adoptopenjdk:11-jre-hotspot

ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app-0.0.1-SNAPSHOT.jar

ENTRYPOINT ["java","-jar","/app-0.0.1-SNAPSHOT.jar"]

运行mvn clean install后,我得到一个APP-0.0.1-SNAPSHOT.jar,然后将其定义到Docker文件中

接下来,我运行此命令docker build -t app .我看到此容器安装在我的坞站桌面上。

运行此命令docker image ls后,我还在列表中看到此容器。

我运行此命令docker run -p 9999:8080 app以在docker中运行它。

运行此命令后容器工作正常(docker ps)

接下来,我测试了任何类似http://localhost:9999/getCategoryById/1的URL,而不是Postman中的http://localhost:8080/getCategoryById/1,但是我得到了消息(无法发送请求)。当我在浏览器中测试此URL时,收到消息ERR_EMPTY_RESPONSE

我通过docker inspect container_id了解容器IP地址,然后使用http://172.17.0.2:9999/getCategoryById/1,但没有任何更改。

我还检查了IP地址是否管理包(ping 172.17.0.2),但收到Request timed out消息。

这是我的项目链接:Link

如何解决我的问题?

推荐答案

在您的应用程序中,server.port文件中用于为Spring Boot Embedded Tomcat Server配置端口的属性是8082

要访问容器端口8080上的应用程序,您需要覆盖server.port属性。重写属性的方法之一是使用如下所示的环境变量

docker run -e SERVER_PORT=8080 -p 9999:8080 app

其中SERVER_PORT对应于-p <hostPort>:<containerPort>

中指定的容器端口 其他选项是直接更新application.properties文件中的属性,如下所示。更新后,您可以使用与运行停靠机映像时使用的命令相同的命令docker run -p 9999:8080 app

server.port= 8080

这篇关于无法在Windows 10的Docker中运行Spring Boot应用程序(获取ERR_EMPTY_RESPONSE)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆