Docker容器上带有mysql数据库的Spring Boot应用程序的Maven安装构建失败

时间:2020-07-18 16:06:30

标签: mysql spring-boot docker maven docker-toolbox

要为我的春季启动应用程序创建jar来构建docker容器,我从eclipse运行 Maven Install ,但构建失败并出现以下错误:

2020-07-18 20:47:52.452  INFO 5920 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-07-18 20:47:52.566  INFO 5920 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2020-07-18 20:48:22.960  INFO 5920 --- [  restartedMain] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2020-07-18 20:48:23.299  INFO 5920 --- [  restartedMain] org.hibernate.Version                    : HHH000412: Hibernate Core {5.4.9.Final}
2020-07-18 20:48:23.821  INFO 5920 --- [  restartedMain] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2020-07-18 20:48:54.341  WARN 5920 --- [  restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata : HikariPool-1 - Connection is not available, request timed out after 30000ms.
2020-07-18 20:48:54.361  WARN 5920 --- [  restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
2020-07-18 20:48:54.365  INFO 5920 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2020-07-18 20:49:03.446  INFO 5920 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
2020-07-18 20:49:03.452  INFO 5920 --- [  restartedMain] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2020-07-18 20:49:03.522  INFO 5920 --- [  restartedMain] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-07-18 20:49:03.551 ERROR 5920 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed

我的Spring Boot应用程序的application.properties文件是:

spring.datasource.username=root
spring.datasource.password=ayush123
spring.datasource.url=jdbc:mysql://mysqldb:3306/employeedb
spring.datasource.platform=mysql
hibernate.hbm2ddl.auto=update
spring.jpa.generate-ddl=true
spring.datasource.hikari.initializationFailTimeout=-1

我也尝试过 spring.datasource.url=jdbc:mysql://mysqldb/employeedb

我使用以下命令创建了docker网络并构建了MySQL数据库:

docker pull mysql:8.0

docker network create edrms-net

docker container run --name mysqldb --network edrms-net -e MYSQL_ROOT_PASSWORD=ayush123 -e MYSQL_DATABASE=employeedb -d mysql:8.0

docker container ls上,我可以看到MYSQL容器已部署并正在运行。

enter image description here

我完全迷路了,无法康复。请帮忙!

1 个答案:

答案 0 :(得分:0)

要连接到docker容器中的mySql服务器,必须在运行要连接到服务器的容器时发布端口。

要实现这一点,请在您的docker容器运行命令中添加--publish 3306:3306