无法在 Windows 10 中 运行 Spring 在 Docker 中启动应用程序(获取 ERR_EMPTY_RESPONSE)?
Cannot run Spring Boot aplication in Docker (Getting ERR_EMPTY_RESPONSE) in Windows 10?
我的 Spring 启动应用程序 运行 在 Docker 中出现问题.
这是我的 Docker 文件 嵌入在我的应用程序中,如下所示。
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 桌面上 .
在运行执行此命令后docker image ls
,我还在列表中看到了这个容器。
我 运行 这个命令 docker run -p 9999:8080 app
到 运行 它在 docker.
容器在 运行 执行此命令后完美运行 (docker ps
)
接下来,我在 Postman 中测试任何 URL,如 http://localhost:9999/getCategoryById/1
而不是 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 : Link
我该如何解决我的问题?
在您的应用程序中,application.properties
文件中的 server.port
属性,用于为 Spring Boot embedded Tomcat 服务器配置端口的 8082
.
要访问容器端口 8080
上的应用程序,您需要覆盖 server.port
属性。可以覆盖 属性 的方法之一是使用如下所示的环境变量,
docker run -e SERVER_PORT=8080 -p 9999:8080 app
其中SERVER_PORT对应-p <hostPort>:<containerPort>
中指定的容器端口
其他选项是直接更新 application.properties
文件中的 属性,如下所示。更新后,您可以使用与 运行 docker 图像 docker run -p 9999:8080 app
相同的命令
server.port= 8080
我的 Spring 启动应用程序 运行 在 Docker 中出现问题.
这是我的 Docker 文件 嵌入在我的应用程序中,如下所示。
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 桌面上 .
在运行执行此命令后docker image ls
,我还在列表中看到了这个容器。
我 运行 这个命令 docker run -p 9999:8080 app
到 运行 它在 docker.
容器在 运行 执行此命令后完美运行 (docker ps
)
接下来,我在 Postman 中测试任何 URL,如 http://localhost:9999/getCategoryById/1
而不是 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 : Link
我该如何解决我的问题?
在您的应用程序中,application.properties
文件中的 server.port
属性,用于为 Spring Boot embedded Tomcat 服务器配置端口的 8082
.
要访问容器端口 8080
上的应用程序,您需要覆盖 server.port
属性。可以覆盖 属性 的方法之一是使用如下所示的环境变量,
docker run -e SERVER_PORT=8080 -p 9999:8080 app
其中SERVER_PORT对应-p <hostPort>:<containerPort>
其他选项是直接更新 application.properties
文件中的 属性,如下所示。更新后,您可以使用与 运行 docker 图像 docker run -p 9999:8080 app
server.port= 8080