为什么我不能通过Docker compose将spring引导容器连接到mysql sql容器?
如何连接mysql容器和spring boot应用程序容器。我尝试使用网络,然后尝试docker compose,但我的spring boot应用程序似乎无法连接 docker-compose.yml 应用程序属性 然后我在compose中通过网络修复它为什么我不能通过Docker compose将spring引导容器连接到mysql sql容器?,docker,docker-compose,Docker,Docker Compose,如何连接mysql容器和spring boot应用程序容器。我尝试使用网络,然后尝试docker compose,但我的spring boot应用程序似乎无法连接 docker-compose.yml 应用程序属性 然后我在compose中通过网络修复它 version: '3' services: mysql-docker-container: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=roo
version: '3'
services:
mysql-docker-container:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=my_app
volumes:
- /data/mysql
ports:
- "3306:3306"
networks:
- "my-network"
authenticate:
image: authenticate
build:
context: ./
dockerfile: Dockeerfile
depends_on:
- mysql-docker-container
ports:
- "8080:8080"
volumes:
- /data/authentica
networks:
- "my-network"
networks:
my-network:
它没有任何不同您的服务名称和连接字符串不同,您应该使用docker compose中定义的确切服务名称或容器名称 将连接字符串更改为
spring.datasource.url= jdbc:mysql://mysql-docker-container:3306/my_app?useSSL=false
更新:
如果连接字符串不能解决问题,那么可能有两个原因
- 在DB容器准备好接受连接之前,应用程序尝试连接
在这种情况下,
取决于:
无法解决您的问题,DB容器需要一些时间来接受连接。您可以在应用程序端使用或处理重试逻辑。您的服务名称和连接字符串不同,您应该使用docker compose中定义的确切服务名称或容器名称
将连接字符串更改为
spring.datasource.url= jdbc:mysql://mysql-docker-container:3306/my_app?useSSL=false
更新:
如果连接字符串不能解决问题,那么可能有两个原因
- 在DB容器准备好接受连接之前,应用程序尝试连接
在这种情况下,
取决于:
无法解决您的问题,DB容器需要一些时间来接受连接。您可以在应用程序端处理重试逻辑。我想这不是我的问题。我检查过了,但没什么问题。我想这不是我的问题。我检查过了,但没什么问题
spring.datasource.url= jdbc:mysql://mysql-docker-container:3306/my_app?useSSL=false