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

docker-compose环境下Django连接Postgres数据库报错问题求助

配置问题及修复方案

你遇到的连接报错主要是以下三个配置问题导致的:

  • Postgres环境变量名错误
    Postgres官方镜像的密码配置变量为POSTGRES_PASSWORD,你当前写的POSTGRES_PASS不符合镜像要求,会导致Postgres初始化异常,无法正常监听端口提供服务。
  • Django数据库连接配置错误
    检查你Django项目settings.py中的数据库配置项,必须符合以下要求:
    • HOST字段填docker-compose中定义的db服务名db,不能填127.0.0.1或localhost,同网络下的容器通过服务名进行DNS解析互访
    • PORT字段填Postgres默认端口5432
    • USER、PASSWORD、NAME字段要和db服务的POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB取值对应,也就是分别为postgres、postgres、postgres
  • 服务启动时序不匹配
    depends_on仅能保证db容器先于Django容器启动,无法保证Postgres进程完全初始化完成,Postgres首次启动时会执行初始化逻辑,这段时间端口未开放,Django启动时尝试连接就会抛出连接拒绝错误。

修复步骤

  1. 修改docker-compose.yml中db服务的environment配置,将POSTGRES_PASS改为POSTGRES_PASSWORD
  2. 调整Django启动命令,增加等待逻辑避免时序问题,比如将django服务的command改为:
    sh -c "sleep 15 && python manage.py runserver 0.0.0.0:8000"
    
  3. 执行docker-compose down -v删除已有的错误初始化数据卷,避免旧数据干扰
  4. 重新执行docker-compose up --build启动服务即可

内容的提问来源于stack exchange,提问作者23rdpro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:06:00