The errors:
2024-02-20 16:40:35.801 UTC [1] LOG: database system is ready to accept connections api_service-1 | 2024-02-20T16:40:35.950Z ERROR 1 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. api_service-1 | api_service-1 | org.postgresql.util.PSQLException: FATAL: the database system is not yet accepting connections api_service-1 | Detail: Consistent recovery state has not been yet reached. api_service-1 | at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:693) ~[postgresql-42.6.0.jar!/:42.6.0]
2024-02-20T16:40:35.955Z WARN 1 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata
api_service-1 |
api_service-1 | java.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value
of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "java_to_dev"
2024-02-20T16:40:52.054Z ERROR 1 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context wi th path [] threw exception [Request processing failed: org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction] with root cause
My docker-compose.yml
version: "3.7"
services:
api_service:
build: .
restart: always
ports:
- "8080:8080"
depends_on:
- postgresql_db
links:
- postgresql_db:postgresql_db
postgresql_db:
image: "postgres:15-alpine3.17"
restart: always
ports:
- "5432:5432"
environment:
- POSTGRES_DB= java_to_dev_app_db
- POSTGRES_USER= java_to_dev
- POSTGRES_PASSWORD=
- SPRING_DATASOURCE_URL= jdbc:postgresql://postgresql_db/java_to_dev_app_db
My application.properties
spring.datasource.url=jdbc:postgresql://postgresql_db/java_to_dev_app_db
spring.datasource.username=java_to_dev
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=none
spring.jpa.defer-datasource-initialization=true
spring.sql.init.mode=always
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
The Dockerfile
FROM openjdk:17
ADD /target/mine-0.0.1-SNAPSHOT.jar backend.jar
ENTRYPOINT ["java", "-jar", "backend.jar"]
mvn dependency
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>