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

Docker Compose启动Mathesar服务时PostgreSQL连接超时求助

解决Mathesar开发服务启动时容器间数据库连接超时问题

问题现象

执行sudo docker compose --profile dev up启动Mathesar开发服务时,反复出现超时失败:

Timeout after 30s waiting on dependencies to become available: [tcp://mathesar_db:5432]

日志确认mathesar_db容器已正常启动并监听5432端口,但mathesar_service_dev容器始终无法连接该端口。延长连接超时时间后,出现新错误:

拨号出现问题:拨号 tcp 172.18.0.3:5432:连接:连接超时。等待1秒

已尝试重启Docker服务(仅首次有效)、清理5432端口进程、切换docker-compose命令、重装Docker,但更新代码后问题复现。
操作系统:Ubuntu 22.10 (Kinetic Kudu)

排查与解决步骤

1. 检查Docker网络一致性

  • 查看Mathesar服务关联的Docker网络:
    docker network ls | grep mathesar
    
  • 确认mathesar_db和mathesar_service_dev在同一网络内:
    docker inspect mathesar_db | grep Networks
    docker inspect mathesar_service_dev | grep Networks
    
  • 若不在同一网络,手动将服务容器加入数据库所在网络:
    docker network connect [目标网络名称] mathesar_service_dev
    

2. 验证数据库的外部连接权限

  • 进入mathesar_db容器,检查端口监听状态:
    docker exec -it mathesar_db bash
    netstat -tulpn | grep 5432
    
  • 修改PostgreSQL配置允许同网段连接:
    编辑容器内/var/lib/postgresql/data/postgresql.conf,设置listen_addresses = '*';
    编辑pg_hba.conf添加规则:
    host    all             all             172.18.0.0/16           trust
    
    重启数据库容器:
    docker restart mathesar_db
    

3. 彻底清理Docker残留资源

  • 清除Mathesar相关的容器、卷和网络:
    sudo docker compose --profile dev down -v --rmi all --remove-orphans
    
  • 清理Docker系统缓存:
    docker system prune -af
    
  • 重新拉取镜像并启动服务:
    sudo docker compose --profile dev pull
    sudo docker compose --profile dev up
    

4. 检查宿主机防火墙规则

  • 临时关闭防火墙测试:
    sudo ufw disable
    
    若问题解决,为Docker网络添加放行规则后重启防火墙:
    sudo ufw allow in on docker0
    sudo ufw allow in on br-*
    sudo ufw enable
    

5. 配置精准的健康检查依赖

在docker-compose.yml中为服务添加基于健康检查的依赖,替代默认超时等待:

services:
  mathesar_service_dev:
    # 原有配置
    depends_on:
      mathesar_db:
        condition: service_healthy
  mathesar_db:
    # 原有配置
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U mathesar -d mathesar"]
      interval: 5s
      timeout: 5s
      retries: 10

内容的提问来源于stack exchange,提问作者Aritra Majumder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:52:45