我有一个带有gradle和Hibernate的基本Spring Boot应用程序,可以调用Oracle数据库,该数据库位于docker容器中。
我使用插件“ com.google.cloud.tools.jib”并使用以下命令创建了Spring Boot应用程序的Docker映像:
./gradlew jibDockerBuild --image=app1
我已经创建了一个用户定义的网络(我们称之为 my_network ),并且已经将数据库容器附加到上述网络中。
我有一个docker-file,即使我将映像指定为服务并在运行时使用 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
尝试过的解决方案,但没有结果:
答案 0 :(得分:0)
在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