이것이 작동하지 않는 이유에 대해 아이디어를 가진 분이 있을까요?
이 주제에서 @pfaffman과 @Nacho_Caballero의 게시글을 참고했고, 이 게시물에서 @mpalmer의 글을 참고했습니다: How to make the database (or part of it) accessible to a cloud data processor? 및 Accessing to the database from outside the container - #4 by mpalmer.
먼저 app.yml을 다음과 같이 수정했습니다:
expose:
- "127.0.0.2:5432:5432"
컨테이너를 다시 빌드했습니다. 컨테이너 내부에서 postgres 사용자의 비밀번호를 설정했고, 컨테이너 내부에서는 다음 명령어로 연결할 수 있습니다:
psql -h localhost -d discourse -U postgres
그러나 컨테이너를 나간 후 연결을 시도하면 다음과 같은 오류가 발생합니다:
# psql -h 127.0.0.2 -p 5432 -d discourse -U postgres
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
포트 번호를 다른 것으로 변경해 보았지만 동일한 문제가 발생합니다. 127 IP 주소는 docker ps와 Network Settings의 inspect에서 확인했습니다(독립형 Discourse 인스턴스 3개를 실행 중입니다).
IP 주소를 변경해 보면(다른 Discourse 포럼 중 하나의 IP로), (더 즉각적이고) 다른 응답/메시지가 반환되므로, 위의 설정이 부분적으로는 정확한 것으로 보입니다:
# psql -h 127.0.0.3 -p 5432 -d discourse -U postgres
psql: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 5432?
제가 무엇을 잘못하고 있는지 아이디어가 있을까요? psql: server closed the connection unexpectedly를 검색해 보면 네트워크 문제인 것 같습니다 - 따라서 컨테이너 내부에서 다른 설정을 변경해야 하는 것일까요?