Ste*_*ven 5 mysql spring docker spring-boot
我一直在尝试在后端(在 Spring Boot 上运行)容器和预构建的 MySQL 容器之间建立连接。但是,我无法连接它。我的 docker 撰写文件是:
version: '3.7'
services:
test-mysql:
image: mysql
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_DATABASE: testdb
MYSQL_USER: test
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: root
backend:
depends_on:
- test-mysql
build:
context: backend
dockerfile: Dockerfile
ports:
- "8080:8080"
restart: always
volumes:
db_data: {}
Run Code Online (Sandbox Code Playgroud)
我的应用程序属性:
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.url=jdbc:mysql://test-mysql:3306/testdb?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=test
spring.datasource.password=test
Run Code Online (Sandbox Code Playgroud)
当我使用时docker-compose up,Spring Boot 无法识别容器名称test-mysql。它抛出:java.net.UnknownHostException
当我将其更改为IP时,它说连接被拒绝。我到处寻找但无法解决。我希望任何人都可以帮助我。谢谢你!
您必须在 Composer 文件中提及后端 mysql 属性,如下所示,
backend:
depends_on:
- test-mysql
build:
context: backend
dockerfile: Dockerfile
ports:
- "8080:8080"
restart: always
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://test-
mysql:3306/testdbautoReconnect=true&failOverReadOnly=false&maxReconnects=10
SPRING_DATASOURCE_USERNAME: test
SPRING_DATASOURCE_PASSWORD: test
links:
- test-mysql:test-mysql
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请尝试创建一个通用的 docker 网络并将其添加到您的作曲家文件中,如下所示,
backend:
depends_on:
- test-mysql
build:
context: backend
dockerfile: Dockerfile
ports:
- "8080:8080"
restart: always
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://test-
mysql:3306/testdbautoReconnect=true&failOverReadOnly=false&maxReconnects=10
SPRING_DATASOURCE_USERNAME: test
SPRING_DATASOURCE_PASSWORD: test
networks:
-common-network
test-mysql:
image: mysql
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_DATABASE: testdb
MYSQL_USER: test
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: root
networks:
-common-network
#Docker Networks
networks:
common-network:
driver: bridge
#Volumes
volumes:
dbdata:
driver: local
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8447 次 |
| 最近记录: |