簡體   English   中英

Spring 引導應用程序無法在 Docker 中運行

[英]Spring Boot application cannot run in Docker

我正在構建一個 Spring 引導應用程序以提供一些 REST 服務,我想將其導入 Docker 中。 如果我在 IntelliJ 中按運行按鈕運行我的應用程序,我可以正確加載端點。

我的應用程序正在偵聽端口 8091,因為我的 dockerfile 如下

FROM openjdk:11
ADD out/artifacts/web_services_main_jar/web_services.main.jar lib_image.jar
EXPOSE 8091
ENTRYPOINT ["java","-jar","lib_image.jar"]

構建和運行 docker 容器的代碼如下

docker build --build-arg JAR_FILE=out/artifacts/web_services_main_jar/web_services.main.jar -t lib_proj .

docker run -p 8090:8091 lib_proj

問題是當應用程序在 docker 中運行並且我嘗試在瀏覽器中加載“localhost:8090/user”時,chrome 返回 ERR_EMPTY_RESPONSE 消息。

如果我打開 Docker 並打開容器的 CLI 並運行

curl localhost:8091/user

即使在這里打印錯誤“卷曲:(7)無法連接到本地主機端口8091:連接被拒絕”。 有什么建議嗎?

編輯:我的 application.properties 已經指定了地址和端口,如下所示:

server.address=0.0.0.0
server.port=8091

好的,我發現的解決方法是將所有端口保留為默認的 8080。所以我將 dockerfile 中的 8091 和“docker run ...”命令中的 8090 替換為 8080,現在它可以在這里工作。 我假設因為 tomcat 在幕后只聽這個,我正在想辦法改變這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM