You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose中postgres-test测试数据库无法连接问题求助

解决Docker Compose中postgres-test数据库的pgAdmin连接问题

一、修复.env文件格式错误

你的.env文件存在环境变量未正确换行分隔的问题,这会导致服务无法正确读取测试数据库的配置参数,是连接失败的核心原因之一。

原错误内容:

PORT=3000
database

DB_HOST=postgres DB_USERNAME=postgresDB_PASSWORD=admin123 DB_NAME=cityevents

# test-env

DB_TEST_NAME=postgres DB_TEST_HOST=postgres-test

修复后(每个变量单独占一行,避免值拼接错误):

PORT=3000

# 开发环境变量
DB_HOST=postgres
DB_USERNAME=postgres
DB_PASSWORD=admin123
DB_NAME=cityevents

# 测试环境变量
DB_TEST_NAME=postgres
DB_TEST_HOST=postgres-test

二、验证postgres-test容器状态

  1. 先检查容器是否正常启动:
docker-compose ps postgres-test
  1. 如果容器状态不是Up,查看启动日志排查问题:
docker-compose logs postgres-test
  1. 修复配置后,重启测试数据库容器:
docker-compose down && docker-compose up -d postgres-test

三、检查pgAdmin连接参数

使用pgAdmin连接时,务必匹配以下参数:

  • 主机名/地址:本地机器IP或localhost(本地运行场景)
  • 端口:5431(对应docker-compose中映射的宿主机端口)
  • 用户名:postgres
  • 密码:admin123
  • 数据库名:postgres(对应容器的POSTGRES_DB环境变量)

四、验证容器间连通性

若api-test服务需要连接postgres-test,修复.env后可进入容器测试网络连通性:

docker exec -it test-api bash

在容器内安装工具并测试:

apt update && apt install -y iputils-ping postgresql-client
# 测试网络可达性
ping postgres-test
# 测试数据库连接
psql -h postgres-test -U postgres -d postgres

输入密码admin123后,若能进入数据库交互界面,说明容器间连通正常。

五、排查api-test服务初始化问题

如果api-test的migrate命令执行失败,可能导致数据库初始化异常,查看日志定位问题:

docker-compose logs test-api

内容的提问来源于stack exchange,提问作者Mohit kavad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:05:29