无法在Windows 10的Docker中运行Spring Boot应用程序(获取ERR_EMPTY_RESPONSE)? [英] Cannot run Spring Boot aplication in Docker (Getting ERR_EMPTY_RESPONSE) in Windows 10?
本文介绍了无法在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屋!
查看全文