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

Symfony项目Docker部署PostgreSQL主机名解析错误求助

问题解决方法

核心原因

你在本地终端直接执行make:migration命令时,本地系统无法解析Docker内部的postgres主机名——这个主机名只有Docker容器所在的内部网络才能识别。

解决步骤

1. 进入PHP容器内部执行命令

这是最直接的解决方式,所有需要连接数据库的Symfony命令都应该在PHP容器内执行:

docker-compose exec php bin/console make:migration

2. 额外排查点(若上述方法无效)

  • 确认服务运行状态:先检查postgres容器是否正常启动
    docker-compose ps postgres
    
    状态显示Up才代表服务正常运行。
  • 检查网络归属:默认docker-compose会为所有服务创建并加入同一个默认网络,若你手动配置了网络,需确保php和postgres服务在同一网络下。
  • 等待数据库初始化完成:depends_on仅保证postgres在php之前启动,但不保证数据库服务完全就绪。若执行命令时postgres还在初始化,可等待10-20秒后重试,或在php容器的启动脚本中加入等待数据库就绪的逻辑。
  • 修正serverVersion参数:你的PostgreSQL使用的是13版本,但连接URL中写的serverVersion=15,虽不是当前错误的直接原因,但建议修正为对应版本避免后续问题:
    DATABASE_URL="postgresql://root:root@postgres:5432/mydb?serverVersion=13&charset=utf8"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:20:33