iT邦幫忙

0

Docker Desktop Kubernetes 環境中佈署一個 SpringBoot Appilcation 無法連接非Docker 的 MongoDB

  • 分享至 

  • xImage

在 WIN10 Docker Desktop Kubernetes環境, 已成功佈署一個使用 SpringBoot 開發出 Appilcation, 此App. pom.xml 包含 MongoDB , 並使用 MongoRepository 作為寫入資料 DAO, 但 MongoDB 是一台內網實體 Server不在 K8S中, SpringBoot application.properties 連線的設定是
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=root
spring.data.mongodb.database=MyMongoDatabase
但在Appilcation 啟動時,
出現 Exception in monitor thread while connecting to server 127.0.0.1:27017

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
WUcheap
iT邦研究生 4 級 ‧ 2024-07-12 10:43:56

為什麼 spring.data.mongodb.host 是設定 127.0.0.1 呢?
mongodb.host設定為DB的內網實體 ServerHost IP試試

jazzinfo iT邦新手 5 級 ‧ 2024-07-13 08:59:44 檢舉

感謝回覆
那是因為
我的開發案例是將 SpringBoot Application 佈屬在 Docker Desktop K8S 環境,MongoDB 佈屬在Local Docker Container

jazzinfo iT邦新手 5 級 ‧ 2024-07-13 09:00:41 檢舉

我已找到問題,如下說明

0
Darwin Watterson
iT邦好手 1 級 ‧ 2024-07-12 16:04:18
jazzinfo iT邦新手 5 級 ‧ 2024-07-13 08:57:51 檢舉

感謝回覆, 確實是 MongoDB Host 設定問題, 我的開發案例是將 SpringBoot Application 佈屬在 Docker Desktop K8S 環境,MongoDB 佈屬在Local Docker Container , 出現的問題是在 K8S SpringBoot Application 啟動時, 就無法連接到 MongoDB IP,
正確做法是修改SpringBoot application.properties 設定,將 MongoDB Host 改為如下:

spring.data.mongodb.host=host.docker.internal

就可正常啟動

我要發表回答

立即登入回答