Я занимаюсь разработкой веб-приложения с использованием Spring Boot, Spring Cloud Config и Docker. Есть 3 проекта. Одним из них является веб-версия Springboot, сервер Spring Cloud Config и база данных MySql. Я использовал Spring Boot Web с Themeleaf. Это в основном выполнить операцию CRUD. На этапе разработки все работает нормально. Но когда я разверну его в Docker
Контейнер Spring-Boot webapp (springboot-thymeleaf-web-crud) выдает мне следующую ошибку -
Приложение не удалось запустить
Описание:
Не удалось настроить источник данных: атрибут 'url' не указан, и встроенный источник данных не может быть настроен.
Причина: не удалось определить подходящий класс драйвера
Действие:
Рассмотрим следующее:
Если вам нужна встроенная база данных (H2, HSQL или Derby), поместите ее в путь к классам.
Если у вас есть настройки базы данных для загрузки из определенного профиля, вам может потребоваться активировать его (в настоящее время профили не активны).
Я создал 3 контейнера в файле Docker Compose.
version: '3'
services:
springboot-thymeleaf-web-crud:
image: numery/springboot-thymeleaf-web-crud:latest
networks:
- employee-network
ports:
- 8080:8080
depends_on:
- employee-database
- spring-cloud-config-server-employee
spring-cloud-config-server-employee:
image: numery/spring-cloud-config-server-employee:latest
networks:
- employee-network
ports:
- 8888:8888
employee-database:
image: mysql:5
networks:
- employee-network
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=employee_directory
volumes:
- /home/numery/Docker-Database/employee_directory:/var/lib/mysql
networks:
employee-network:
SpringBoot Web Application. Свойства приведены ниже
spring.application.name=employee-service-mysql
server.port=8080
spring.cloud.config.uri=http://spring-cloud-config-server-
employee:8888
spring.profiles.active=dev
Сервер SpringBoot Config предоставляет следующие свойства -
spring.datasource.url: jdbc:mysql://employee-
database:3306/employee_directory?
useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username: root
spring.datasource.password: rootpassword
spring.datasource.validationQuery: SELECT 1
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.tomcat.max-wait: 20000
spring.tomcat.max-active: 50
spring.tomcat.max-idle: 20
spring.tomcat.min-idle: 15
spring.jpa.properties.hibernate.dialect:
org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql: true
spring.jpa.format-sql: true
spring.jpa.database: MYSQL
spring.jpa.hibernate.ddl-auto: create
Из этих 3 контейнеров контейнер Mysql и Spring Cloud Config работает нормально. Но для Spring Boot Webapp (springboot-thymeleaf-web-crud) завершает работу, сообщая об ошибке выше.
Примечание. Я использую ту же конфигурацию данных (Spring Data JPA) в некоторых других SpringBoot Rest API. Которые работают нормально. Но я впервые использую SpringBoot Web. Нужно ли явно определять какую-либо конфигурацию в источнике данных.
Пожалуйста, помогите !!