티스토리 뷰
troubleshooting
sequlize에서 docker postgresql 연결오류(HostNotFoundError [SequelizeHostNotFoundError]: getaddrinfo ENOTFOUND docker-db)
jonyo 2021. 9. 25. 00:51상황은 다음과 같다.
로컬 node환경에서 작업을하고 ORM으로는 sequlize를 사용한다.
DB만 docker에서 postgresql컨테이너를 만들고 sequlize로 연결하려고 하는데 계속 다음과 같은 오류가 떴다.
docker 컨테이너 생성은 다음과 같은 명령어로 했다.
docker run --rm \
--name docker-db \
-e POSTGRES_DB=test \
-e POSTGRES_USER=test \
-e POSTGRES_PASSWORD=test \
-p 5432:5432 \
postgres
컨테이너는 잘 생성되었고 docker exec --it docker-db bash
를 통해 컨테이너로 접속하고,
su - postgres
와 psql --username test --dbname test
를 통해 postgrdsql CLI인 psql로 접속하여 확인도 가능했다.
sequlize는 sequelize init
을 통해 초기화 하고 config.json
을 다음과 같이 수정했다.
"development": {
"username": "test",
"password": "test",
"database": "test",
"host": "test",
"dialect": "postgres"
},
이제 서버를 켜고 DB를 sync하려는데 계속 오류가 발생했다.
HostNotFoundError [SequelizeHostNotFoundError]: getaddrinfo ENOTFOUND docker-db
at Client._connectionCallback (C:\Users\Park\Desktop\Server\node_modules\sequelize\lib\dialects\postgres\connection-manager.js:175:24)
at Client._handleErrorWhileConnecting (C:\Users\Park\Desktop\Server\node_modules\pg\lib\client.js:305:19)
at Client._handleErrorEvent (C:\Users\Park\Desktop\Server\node_modules\pg\lib\client.js:315:19)
at Connection.emit (events.js:400:28)
at Connection.emit (domain.js:470:12)
at Socket.reportStreamError (C:\Users\Park\Desktop\Server\node_modules\pg\lib\connection.js:52:12)
at Socket.emit (events.js:400:28)
at Socket.emit (domain.js:470:12)
at emitErrorNT (internal/streams/destroy.js:106:8)
at emitErrorCloseNT (internal/streams/destroy.js:74:3) {
parent: Error: getaddrinfo ENOTFOUND docker-db
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:26) {
errno: -3008,
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'docker-db'
},
original: Error: getaddrinfo ENOTFOUND docker-db
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:26) {
errno: -3008,
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'docker-db'
}
구글링하다보니 깃헙에서 같은 이슈를 겪고있는 사람을 확인했고
config.json
을 다음과 같이 수정하니 DB연결이 성공적으로 되었다.
"development": {
"username": "test",
"password": "test",
"database": "test",
"host": "host.docker.internal",
"dialect": "postgres"
},
작업파일도 docker 이미지로 만들고 docker-compose를 이용한다면 이 방법이 필요 없을 수 있다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ReactNative
- 재귀
- 시뮬레이션
- dfs
- 구현
- 알고리즘
- 벨만포드
- nestjs
- nodeJS
- nest.js
- 그리디
- 그래프
- 컴퓨터 통신
- boj
- 백트래킹
- node.js
- BFS
- 중앙대학교
- 세그먼트 트리
- 투포인터
- Computer Architecture
- 백준
- typeORM
- 예외처리
- 컴퓨터 구조
- 자바
- 동적계획법
- 스레드
- 자바스크립트
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함