도커로 앱과 postgresSQL을 함께 띄우려고 할때,
디비에 연결이 되지 않는 에러가 발생했다.
// 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`,
[Docker] docker compose로 다중 컨테이너 연결 시 Connection to localhost:5432 refused 에러
문제는 바로 각 컨테이너가 독립된 상태로 존재하는데
app 이라는 스프링 서버 컨테이너에서 localhost:5432 를 조회하게 되면
자기 자신의 5432 포트를 조회하는 거니까 아무것도 없는 빈 곳을 조회하는 것이다
-> 이 부분이 꽤 흥미로웠다.