>백엔드 개발 >Golang >Gorm 애플리케이션이 DSN을 무시하고 Mac의 Docker 컨테이너에서 PostgreSQL에 연결할 수 없습니다.

Gorm 애플리케이션이 DSN을 무시하고 Mac의 Docker 컨테이너에서 PostgreSQL에 연결할 수 없습니다.

王林
王林앞으로
2024-02-09 09:12:10948검색

Gorm 应用程序无法连接到 Mac 上 docker 容器中的 PostgreSQL,忽略 DSN

PHP 편집기 Xiaoxin은 최근 Mac에서 Gorm 애플리케이션을 사용하여 Docker 컨테이너의 PostgreSQL에 연결할 때 연결 문제인 문제에 직면했습니다. 구체적인 성능은 DSN이 무시된다는 것입니다. DSN은 데이터 소스 이름(Data Source Name)의 약자로 데이터베이스 연결 정보를 지정하는 데 사용됩니다. 이 문제는 데이터베이스에 연결할 수 없으면 애플리케이션이 제대로 실행되지 않기 때문에 나를 끝까지 짜증나게 합니다. 다음으로, 제가 겪은 문제와 해결 방법을 공유하여 모두에게 도움이 되기를 바라겠습니다.

질문 내용

간단한 go Rest API를 만들어 보려고 합니다. 데이터베이스 처리를 위해 gorm 라이브러리를 사용하고 있지만 컨테이너의 데이터베이스에 연결할 수 없습니다. 나는 이것이 Apple Chip의 Docker 문제일지도 모른다고 생각하지만 확실하지 않습니다. 기본적으로 동일한 설정을 사용하지만 데이터베이스 연결에 전혀 문제가 없는 다른 프로젝트가 있습니다.

기본적으로 연결 매개변수는 dsn 문자열을 무시하고 런타임에 완전히 변경되는 것 같습니다

이것은 docker-compose.yml:

으아악

데이터베이스를 연결하는 부분입니다:

으아악

dsn 매개변수는 docker.env에 구성된 매개변수와 일치합니다. pgadmin은 연결 설정에 문제가 없습니다.

다음과 같은 오류가 발생합니다. 어떤 이유로 연결 매개변수가 완전히 변경된 것 같습니다.

으아악

DSN 문자열의 마지막 부분을 변경하고 컨테이너를 삭제하고 다시 생성해 보았지만 여전히 성공하지 못했습니다.

해결 방법

저는 순진하게 dsn 문자열의 형식이 mysql의 형식과 동일하다고 가정했습니다. 대신 다음과 같아야 합니다.

으아악

위 내용은 Gorm 애플리케이션이 DSN을 무시하고 Mac의 Docker 컨테이너에서 PostgreSQL에 연결할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제