Entity не видят базу данных. org.postgresql.util.PSQLException: Ошибка при попытке подсоединения

Делал REST приложение с использованием postgresql, docker'a и spring boot'a. Все работало отлично до тех пор, пока я не подключил докер и докер compose. Сама программа через докер работает: я отправляю get реквест на сервер и сервер отвечает из базы данных, которая находится в контейнере, но тесты не работают и так же мне подчеркивает все @Column, якобы база данных не подключена и ее нужно подключить, а при попытке запуска теста пишет "org.postgresql.util.PSQLException: Ошибка при попытке подсоединения". Базу данных конкретно в самой ide я не подключал(я имею ввиду плашку с боку, где написано Database), так как когда я работал с mongodb я ее там не подключал, когда работал с контейнером и все было нормально, никаких assign data source не выскакивало, а так же из-за того, что при попытке подключения выдает это:

введите сюда описание изображения

controller

@RestController
@RequestMapping("api/schedule/")
public class ScheduleController {
    private final ScheduleServiceImpl scheduleServiceImpl;

    @Autowired
    public ScheduleController(ScheduleServiceImpl scheduleServiceImpl){
        this.scheduleServiceImpl = scheduleServiceImpl;
    }

    @GetMapping("{studentId}")
    public String getSchedule(@PathVariable long studentId){
        return scheduleServiceImpl.findScheduleByStudentId(studentId);
    }
}

group entity

@Entity
@Table(name = "groups")
@Getter
@NoArgsConstructor
public class Group {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int groupId;

    @Column(name = "number_of_group")
    private String numberOfGroup;

    @ManyToMany(
            fetch = FetchType.EAGER,
            cascade = CascadeType.ALL
    )
    @JoinTable(
            name = "groups_timetable",
            joinColumns = @JoinColumn(name = "group_id"),
            inverseJoinColumns = @JoinColumn(name = "timetable_id")
    )
    private List<Timetable> timetable;

    public Group(String numberOfGroup, List<Timetable> timetable){
        this.numberOfGroup = numberOfGroup;
        this.timetable = timetable;
    }
}

student entity

@Entity
@Table(name = "student")
@Getter
@NoArgsConstructor
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private long studentId;

    @Column(name = "first_name")
    private String firstName;

    @Column(name = "last_name")
    private String lastName;

    @ManyToOne(
            fetch = FetchType.EAGER,
            cascade = CascadeType.ALL
    )
    @JoinTable(
            name = "students_group",
            joinColumns = @JoinColumn(name = "student_id"),
            inverseJoinColumns = @JoinColumn(name = "group_id")
    )
    private Group group;

    public Student(String firstName, String lastName, Group group){
        this.firstName = firstName;
        this.lastName = lastName;
        this.group = group;
    }
}

timetable entity

@Entity
@Table(name = "timetable")
@Getter
@NoArgsConstructor
public class Timetable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private long timetableId;

    private String schedule;

    @Column(name = "week_day")
    private int weekDay;

    @ManyToMany(mappedBy = "timetable")
    private List<Group> group;

    public Timetable(String schedule, Integer weekDay){
        this.schedule = schedule;
        this.weekDay = weekDay;
    }
}

properties

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.username=postgres
spring.datasource.password=admin
spring.datasource.url=jdbc:postgresql://psql:5432/university_schedule

server.port=3033

dockerfile

FROM openjdk:16

ENV PORT 3033
EXPOSE $PORT

ARG DIR=build/libs/*.jar

COPY $DIR schedule.jar

ENTRYPOINT java -jar schedule.jar

docker compose

version: '3'

volumes:
  schedule-volume:

services:
  psql:
    container_name: postgres-container
    image: postgres
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=admin
      - POSTGRES_DB=university_schedule
    ports:
      - 5432:5432
    volumes:
      - schedule-volume:/data/db
  uni:
    container_name: schedule-container
    image: schedule
    ports:
      - 3033:3033
    environment:
      SPRING_DATASOURCE_URL: jdbc:postgresql://psql:5432/university_schedule
    links:
      - postgresql
    depends_on:
      - postgresql

Ответы (1 шт):

Автор решения: Doc Dark

вы пытаетесь подключиться к бд по хосту "psql", который резолвится только внутри сети докер. Попробуйте "localhost" вместо "psql" на первом скрине (при условии что докер поднят локально).

Если докер не на локалке - попробуйте подключиться по ip машины (прошу заметить, он может измениться в будущем).

Получить ip машины:

linux 
   ip -a
win 
   ipconfig

ссылка на описание network для docker-compose https://docs.docker.com/compose/networking/

→ Ссылка