docker 로 디비와 앱 연결시 Connection to localhost:5432 refused 에러

flobeeee·2024년 8월 6일
0

시행착오

목록 보기
45/45

1. 상황

도커로 앱과 postgresSQL을 함께 띄우려고 할때,
디비에 연결이 되지 않는 에러가 발생했다.

2. 해결방법

//  docker-compose.yml

...
  db:
    image: postgres:14
    container_name: postgres // <- 이렇게 컨테이너명을 명시해줬다.
    environment:
      - POSTGRES_USER=
      - POSTGRES_PASSWORD=
      - POSTGRES_DB=
    ports:
      - '5432:5432'
    volumes:
      - postgres_data:/var/lib/postgresql/data

...

// src/configs/typeorm.config.ts

import { TypeOrmModuleOptions } from "@nestjs/typeorm";

export const typeORMConfig: TypeOrmModuleOptions = {
  type: 'postgres',
  host: 'postgres', // localhost로 쓰던 host를 변경해줬다.
  // host: 'localhost', // npm run start:dev로 개발할때 쓰던 호스트
  port: 5432,
  username: 'user',
  password: `password`,

3. 참고링크

[Docker] docker compose로 다중 컨테이너 연결 시 Connection to localhost:5432 refused 에러

문제는 바로 각 컨테이너가 독립된 상태로 존재하는데
app 이라는 스프링 서버 컨테이너에서 localhost:5432 를 조회하게 되면
자기 자신의 5432 포트를 조회하는 거니까 아무것도 없는 빈 곳을 조회하는 것이다
-> 이 부분이 꽤 흥미로웠다.

profile
기록하는 백엔드 개발자

0개의 댓글