javamysqlspring-bootdockercontainer-image

Getting spring boot build error when trying to create jar file using docker container configurations in application.properties


Spring boot build failure when using docker configurations of mysql databases

Application.properties

`spring.datasource.url=jdbc:mysql://mysqldb:3306/employeedb?useSSL=false
 spring.datasource.username=sa
 spring.datasource.password=1234
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.show-sql=true`

Dockerfile

`FROM openjdk:8
 ADD target/demo-0.0.1-SNAPSHOT.jar demo-0.0.1-SNAPSHOT.jar
 EXPOSE 8080
 ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"]`

I am very new to docker and I am trying to dockerize my spring boot application which is using Mysql database, I have been following a tutorial, but when i am running mvn clean install to build the jar file, it is giving this error

Error

```Error starting ApplicationContext. To display the conditions 
 report re-run your application with 'debug' enabled.
 2023-05-22 16:33:55.304 ERROR 6245 --- [           main] 
 o.s.boot.SpringApplication               : Application run 
 failed

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 javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to open JDBC Connection for DDL execution
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]

Solution

  • like M. Deinum suggest it you problably got this error due of a wrong jdbc url inside your application.properties. To solve that add mysql in your container (by adding an image of mysql inside your Dockerfile) or create an another container with mysql (with this second solution you have to modify jdbc url)