为什么我不能通过Docker compose将spring引导容器连接到mysql sql容器?

为什么我不能通过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

如何连接mysql容器和spring boot应用程序容器。我尝试使用网络,然后尝试docker compose,但我的spring boot应用程序似乎无法连接

docker-compose.yml

应用程序属性

然后我在compose中通过网络修复它

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