<aside> 🚨 아래의 이슈는 클라우드 서비스의 DB 인스턴스를 이용하면서 현재 프로젝트에서 더 이상 사용하지 않는 이슈입니다.
</aside>
호스트 서버에서 어플리케이션을 도커 컨테이너를 띄우고, 도커 컨테이너에서 호스트 서버에 설치된 MySQL에 접속하려는 상황이다.
하지만 도커 컨테이너에서 다음 에러를 띄우며 죽어버린다.
[TypeOrmModule] Unable to connect to the database. Retrying (1)...
Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1595:16)
호스트 서버의 MySQL이기 때문에 호스트를 127.0.0.1
로 지정해줬다. 하지만 도커 컨테이너는 호스트와 다른 IP 주소를 갖는다. 즉, 도커 컨테이너에서 127.0.0.1:3306
에 접속하면, 호스트가 아니라 도커 컨테이너의 3306번 포트에 접속한다.
도커 컨테이너에서 호스트의 포트로 접근하기 위해서는 host.docker.internal
이라는 도메인 네임을 사용해야 한다. 아래 포스트를 참고하여 해당 이슈를 해결했다!