Docker Spring Boot сервисы не могут подключиться к контейнеру MySQL

Я использую Docker Compose для контейнеризации БД и микросервисов .

My docker-compose.yml

version: '3.7'
services:
  mysqldb:
    image: mysql:latest
    container_name: mysqldb
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=cabDB
      - MYSQL_USER=user
      - MYSQL_PASSWORD=pass
    volumes:
      - mysqldb:/var/lib/mysql
    restart: always

  discovery-server:
    image: discovery-server:latest
    container_name: discovery-server
    ports:
      - "8761:8761"
    environment:
      - SPRING_PROFILES_ACTIVE=docker
    restart: always

  api-gateway:
    image: api-gateway:latest
    container_name: api-gateway
    ports:
      - "8080:8080"
    expose:
      - "8080"
    environment:
      - SPRING_PROFILES_ACTIVE=docker
      - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY=TRACE
    depends_on:
      - discovery-server
    links:
      - discovery-server
    restart: always

  payment-service:
    container_name: payment-service
    image: payment-service:latest
    environment:
      - SPRING_PROFILES_ACTIVE=docker
    depends_on:
      - discovery-server
      - api-gateway
      - mysqldb
    links:
      - mysqldb
      - discovery-server
    restart: always
volumes:
  mysqldb:

application.yml in payment-service

spring:
  datasource:
    url: ${MYSQL_JDBC_URL:jdbc:mysql://mysqldb:3306/cabDB?createDatabaseIfNotExist=true&autoReconnect=true&useSSL=false}
    username: ${MYSQL_USERNAME:user}
    password: ${MYSQL_PASSWORD:pass}
  application:
    name: PAYMENT-SERVICE

Если я запускаю docker compose up -d, я получаю эту ошибку во всех контейнерах, которые пытаются подключиться к mysqldb: Could not create connection to database server. Attempted reconnect 3 times. Giving up. Но если я захожу в контейнер mysqldb через Bash и авторизируюсь:

docker exec -it *mysql container id* bash
mysql -uuser -ppass

Все микросервисы сразу же корректно подключаются к БД.


Ответы (0 шт):