>백엔드 개발 >Golang >내 Go 애플리케이션이 Docker Compose에서 Postgres 연결을 거부하는 이유는 무엇입니까?

내 Go 애플리케이션이 Docker Compose에서 Postgres 연결을 거부하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-13 11:02:19684검색

Why Does My Go Application Refuse a Postgres Connection in Docker Compose?

Docker-Compose: Postgres에 대한 연결이 거부됨

Docker-compose 설정 내에서 pg-admin을 통해 Postgres에 연결할 때 사용자는 다음을 수행할 수 있습니다. Go 애플리케이션에서 연결 설정을 거부하는 경우가 있습니다. 이 문서에서는 이 문제를 자세히 살펴보고 해결책을 제공합니다.

Go 애플리케이션에서 생성된 데이터베이스 URL이 데이터베이스 호스트 이름을 "postgres"로 참조하는 반면 실제 컨테이너/서비스 이름은 "database"인 경우 문제가 발생합니다. 이 문제를 해결하려면 compose.yaml 파일 내에서 이름을 변경하거나 호스트 이름 필드를 명시적으로 정의하는 것을 고려하세요. 예:

database:
  build: database
  restart: always
  hostname: postgres

또는 여러 컨테이너 서비스가 서로 통신할 수 있는 전용 네트워크를 만들어 연결 문제를 방지합니다. 각 서비스의 구성에 "networks" 섹션을 추가하고 compose.yaml 끝에 네트워크를 정의합니다.

database:
  # ...
  networks:
    - mynet

backend:
  # ...
  networks:
    - mynet

networks:
  mynet:
    name: my-shared-db-network

이러한 변경 사항을 구현하면 Go 애플리케이션과 Postgres 간의 연결을 설정하는 동시에 Docker-compose 환경 내에서 효율적인 통신을 보장합니다.

위 내용은 내 Go 애플리케이션이 Docker Compose에서 Postgres 연결을 거부하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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