![](/img/trans.png)
[英]Dockerized Spring boot app connect to database docker image
[英]Dockerized Spring Boot app can't connect to database container
我有一個帶有 gradle 和 Hibernate 的基本 Spring Boot 應用程序,它調用 Oracle 數據庫,該數據庫位於 docker 容器中。
我使用插件“com.google.cloud.tools.jib”並使用以下命令創建了 Spring Boot 應用程序的 Docker 映像:
./gradlew jibDockerBuild --image=app1
我已經創建了一個用戶定義的網絡(我們稱之為my_network )並且我已經將數據庫容器附加到上述網絡。
我有一個 docker 文件,即使我將圖像指定為服務並在運行時使用my_network我在 CMD 中點擊了“ docker -compose up”命令,但我收到以下異常:
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
docker-compose 文件如下:
version: '3.7'
networks:
my_network:
external:
name: my_network
services:
app1:
image: "app1"
ports:
- "9090:9090"
environment:
SPRING_DATASOURCE_URL: "jdbc:oracle:thin:@localhost:32769/ORCLPDB1.localdomain"
SPRING_DATASOURCE_USERNAME: username
SPRING_DATASOURCE_PASSWORD: password
networks:
- my_network
嘗試了解決方案,但沒有結果:
在 Docker-compose 文件中。 創建 Oracle 數據庫容器,然后創建 API 容器,如下所示
version: '3.7'
services:
oracle-database:
image: Your oracleImage
environment:
//define your oracle db settings..eg default password,users etc
volumes:
- /data/oracle
ports:
- 127.0.0.1: 32769:32769/tcp
api1:
image: api1
ports:
- 127.0.0.1:9090:9090/tcp
depends_on:
- oracle-database
environment:
- DATABASE_HOST=oracle-database
- DATABASE_USER= username
- DATABASE_PASSWORD=password
- DATABASE_NAME= NameOfYourDatabase
- DATABASE_PORT= 32769
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.