Ошибка при запуске Java Spring Boot проекта на Docker. Exception during pool initialization

Имеется сервер ubuntu с установленным Docker. Есть проект (React, Java Spring). При docker-compose up в логах появляется следующая ошибка:

2022-08-31 11:23:30,516 ERROR com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.

docker-compose.yml:

version: '3'

services:
  nginx-server:
    restart: always
    container_name: 'nginx-server'
    image: 'hermanvfx/nginx:latest'
    depends_on:
      - front_app
    ports:
      - '80:80'

  front_app:
    container_name: 'project-avito4_1_front'
    image: 'hermanvfx/avito4_1_front:latest'
#    ports:
#      - '3000:3000'
  mysql:
    container_name: 'mysql-image'
    image: 'hermanvfx/mysql:latest'
    environment:
      - 'MYSQL_ROOT_PASSWORD=root'
      - 'MYSQL_DATABASE=platform'

  app:
    container_name: 'project-avito4_1_back'
    image: 'hermanvfx/avito4_1_app:latest'
    depends_on:
      - mysql
    ports:
      - '8888:8888'
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://mysql-image:3306/platform?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=root
      - SPRING_DATASOURCE_PLATFORM=org.hibernate.dialect.MySQL8Dialect

application.properties:

server.port=8888
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/platform?characterEncoding=UTF-8&useUnicode=true&\
  useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root

Изображение ошибок:


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

Автор решения: Vladimir

Роман был прав. Приложение стартовало раньше базы данных. Помогло редактирование docker-compose.yml. Для приложения:

depends_on:
         mysql:
              condition: service_healthy

для mysql:

healthcheck:
        test: "mysql -uroot -proot platform -e 'select 1'"
        interval: 1s
        retries: 120

Так же в в логах было: mysql Operation not permitted. Помогла следующая строчка для mysql:

cap_add:
      - SYS_NICE

docker-compose.yml целиком:

version: '3.7'

services:
  nginx-server:
    restart: always
    container_name: 'nginx-server'
    image: 'hermanvfx/nginx:latest'
    depends_on:
      - front_app
    ports:
      - '80:80'

  front_app:
    container_name: 'project-avito4_1_front'
    image: 'hermanvfx/avito4_1_front:latest'
#    ports:
#      - '3000:3000'
  mysql:
    container_name: 'mysql-image'
    image: 'hermanvfx/mysql:latest'
    environment:
      - 'MYSQL_ROOT_PASSWORD=root'
      - 'MYSQL_DATABASE=platform'
    healthcheck:
        test: "mysql -uroot -proot platform -e 'select 1'"
        interval: 1s
        retries: 120
    cap_add:
      - SYS_NICE

  app:
    container_name: 'project-avito4_1_back'
    image: 'hermanvfx/avito4_1_app:latest'
    ports:
      - '8888:8888'
    depends_on:
         mysql:
              condition: service_healthy
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://mysql-image:3306/platform?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=root
      - SPRING_DATASOURCE_PLATFORM=org.hibernate.dialect.MySQL8Dialect

Так же в файле docker-compose.yml изменил версию 3 на 3.7. На сервере переустановил docker-compose v1.26 на docker-compose v2.10.2

→ Ссылка