>백엔드 개발 >Golang >Docker Compose Postgres 연결 거부: pgAdmin은 작동하지만 내 Go 앱은 실패하는 이유는 무엇입니까?

Docker Compose Postgres 연결 거부: pgAdmin은 작동하지만 내 Go 앱은 실패하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-05 13:50:12394검색

Docker Compose Postgres Connection Refused: Why Does pgAdmin Work But My Go App Fails?

[Docker Compose] Postgres 연결 오류: "연결 거부됨" 해결

문제:
시도할 때 Docker Compose에서 실행 중인 Postgres 데이터베이스에 Go 연결을 설정하려면 "연결 거부됨" 오류가 발생합니다. pg-admin에서 성공적으로 연결할 수 있음에도 불구하고 오류가 발생했습니다.

이유:
연결 문자열은 데이터베이스 호스트 이름을 Docker Compose의 서비스 이름과 일치하는 "postgres"로 참조합니다. . 그러나 실제 컨테이너 이름은 "database"입니다.

해결책:
문제를 해결하려면 Docker Compose 파일의 데이터베이스 컨테이너 이름을 "postgres"로 바꾸거나 명시적으로 지정하십시오. 호스트 이름:

database:
  build: database
  restart: always
  hostname: postgres  # Add this line

추가 고려 사항:

  • 네트워크: 통신할 여러 컨테이너 서비스에 대한 전용 네트워크를 추가하면 연결성이 향상될 수 있습니다.
  • 연결 문자열 : Go 코드(_str_)의 연결 문자열에 올바른 내용이 포함되어 있는지 확인하세요. 호스트 이름:

    str := fmt.Sprintf("database://%s:%s@%s:%s/%s?sslmode=disable", user, pass, "postgres", port, dbname)  # Update the hostname to "postgres"

위 내용은 Docker Compose Postgres 연결 거부: pgAdmin은 작동하지만 내 Go 앱은 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.