我正在运行Postgres数据库与pg管理员和GO在泊坞窗撰写。问题:我可以从 pg 管理员连接到 Postgres。但无法从 Go 建立连接。我尝试了身份验证字符串的不同组合,但它不起作用。字符串格式与此处相同 https://github.com/karlkeefer/pngr - 但容器名称不同 -database(错误)连接选项:backend_1 | 2021/08/08 14:24:40 DB connection: database://main:fugZwypczB94m0LP7CcH@postgres:5432/temp_db?sslmode=disablebackend_1 | 2021/08/08 14:24:40 Unalble to open DB connection: dial tcp 127.0.0.1:5432: connect: connection refused(URI 生成与此处相同 https://github.com/karlkeefer/pngr)码头工人:version: '3.8'services: backend: restart: always build: context: backend target: dev volumes: - ./backend:/root ports: - "5000:5000" env_file: .env depends_on: - database database: build: database restart: always environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} PGDATA: /var/lib/postgresql/data volumes: - ./database/data:/var/lib/postgresql/data - ./logs/databse:/var/log/postgresql - ./database/migrations:/docker-entrypoint-initdb.d/migrations ports: - "5432:5432" database-admin: image: dpage/pgadmin4:5.5 restart: always environment: PGADMIN_DEFAULT_EMAIL: ${PG_ADMIN_EMAIL} PGADMIN_DEFAULT_PASSWORD: ${PG_ADMIN_PASSWORD} PGADMIN_LISTEN_PORT: 80 ports: - "8080:80" volumes: - ./database/admin:/var/lib/pgadmin links: - "database:pgsql-server" depends_on: - databasevolumes: database: database-admin:环境:POSTGRES_HOST=postgresPOSTGRES_PORT=5432POSTGRES_DB=temp_dbPOSTGRES_USER=mainPOSTGRES_PASSWORD=fugZwypczB94m0LP7CcHPG_ADMIN_EMAIL=admin@temp.comPG_ADMIN_PASSWORD=ayzi2ta8f1TnX3vKQSN1PG_ADMIN_PORT=80GO 代码:db, err = sqlx.Open("postgres", str)
1 回答
手掌心
TA贡献1942条经验 获得超3个赞
将数据库主机名引用为 () 这很好,但容器/服务名称为 。postgresPOSTGRES_HOST=postgresdatabase
将 from 中的名称更改为 或添加显式字段:compose.yamldatabasepostgreshostname
database:
build: database
restart: always
hostname: postgres # <- add this
您可能还希望为多个容器服务添加专用网络,以便彼此通信(或阻止其他容器服务相互通信)。为此,请将其添加到要使用特定网络的每个服务中,例如
database:
# ...
networks:
- mynet
backend:
# ...
networks:
- mynet
并定义网络在compose.yaml
networks:
mynet:
name: my-shared-db-network
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消