![](/img/trans.png)
[英]Dockerized Spring boot app connect to mongoDB docker image not working
[英]Dockerized Spring boot app connect to database docker image
我有一個帶有 gradle 的基本 Spring Boot 應用程序,它調用 Oracle 數據庫,並且在 application.properties 文件中指定了數據庫屬性。
我使用插件“com.google.cloud.tools.jib”並使用以下命令創建了 Spring Boot 應用程序的 Docker 映像:
./gradlew jibDockerBuild --image=app1
我有一個 docker-compose 文件,我在其中將圖像指定為服務,並且我希望應用程序在我運行以下命令時啟動:“docker-compose up”
docker-compose 文件如下:
version: '3'
services:
app1:
image: "app1"
ports:
- "8731:8731"
但是當我在 CMD 中運行“docker-compose up”命令時,我收到以下異常:
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
更多信息:
您可以毫無問題地從 IntelliJ 連接,因為容器將端口 (3769) 暴露給主機(您的 PC),但現在您正嘗試從一個 Docker 容器連接到另一個容器。
容器不共享網絡(隔離),因此您需要連接它們。
推薦的方法之一是用戶定義的網絡
首先創建一個網絡
docker network create --driver bridge my_network
運行應用程序
docker run -p 5432:5432 --network my_network -d --name=postgres postgres
docker run -p 5050:80 --network my_network -d --name=pgadmin dpage/pgadmin4
您可以驗證它們是否在同一網絡上有效運行
docker network inspect my_network
春季啟動配置
您現在可以使用host.docker.internal
作為主機名從一個連接到另一個,例如在您的 Spring Boot application.properties
spring.datasource.url=jdbc:postgresql://host.docker.internal:5432/postgres
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.