Конфигуриране на Docker контейнери
- Коригирайте compose.yml, като включите конфигурационните данни на контейнер, който ще осигури нужната среда за базата от данни на приложението:
networks:
jedi:
services:
app:
container_name: padawan-6156-app
build:
context: .
dockerfile: Dockerfile
ports:
- "6280:8080"
networks:
- jedi
db:
container_name: padawan-6156-db
image: postgres:latest
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: R2D2c3p0
POSTGRES_USER: padawan
POSTGRES_DB: tasks
networks:
- jedi
- Актуализирайте конфигурацията за стартиране на приложението в контейнерна среда, както следва:
- добавете контейнер за нуждите на Postgres

- задайте добавеният контейнер да се стартира преди стартиране на контейнера с приложението

Добавяне на библиотеки и конфигурации на проекта
За да активирате JPA в Spring Boot приложението, се нуждаем от зависимостта spring-boot-starter-data-jpa. Необходимо е да се добави и зависимост към JDBC драйвер, специфичен за базата данни, в нашия случай драйвера на PostgreSQL. Spring boot конфигурира Hibernate като JPA провайдер по подрабиране.
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
- В application.properties добавете следните конфигурации:
spring.datasource.url=jdbc:postgresql://db:5432/tasks
spring.datasource.username=padawan
spring.datasource.password=R2D2c3p0
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto=update
Със свойството spring.jpa.hibernate.ddl-auto можете да зададете как Hibernate да реализира автоматичното генериране на схема. Възможни опции:
· validate – извършва се проверка дали вече съществуващата схема съответства на предвидените entity. Това е полезна опция, ако базата данни се управлява външно, но все пак искате да сте сигурни, че схемата отговаря на вашите очаквания.
· create – създава схeма, като ако са налице предходно съществуващи данни, те се унищожават.
· create-drop – изтрива схемата в края на сесията. Подходящо за провеждане на тестове.
· update - Hibernate автоматично генерира схемата според предоставените Java entity. Работи на принципа на добавяне на нови изменения. Не се препоръчва да се използва при вече работещи приложения.
3. Добавете Data Source в Database
Data Source e местоположението на данните на вашето приложение.
