直接用docker-symfony栈可快速部署Symfony 5/6应用,省去80%踩坑;需装Docker 20.10+和Compose v2+,克隆项目、绑定symfony.localhost域名、将代码放入./symfony/目录、配置DATABASE_URL主机名为db、运行docker-compose up并等待PHP与Nginx日志就绪后访问。

直接用 docker-symfony 这个现成栈,比从零写 Dockerfile 和 docker-compose.yml 快得多,也少踩 80% 的坑——尤其对 Symfony 5/6 应用。
准备工作:装好工具,拉下项目
确保本地已安装 Docker Engine(20.10+)和 Docker Compose(v2+)。然后执行:
- 克隆项目:
git clone https://gitcode.com/gh_mirrors/do/docker-symfony - 进入目录:
cd docker-symfony - 绑定域名:在
/etc/hosts(Mac/Linux)或C:\Windows\System32\drivers\etc\hosts(Windows)中添加:127.0.0.1 symfony.localhost(需管理员权限保存)
对接你的 Symfony 代码
把你的应用代码放进 ./symfony/ 目录(不是根目录)。再按版本改数据库配置:
- Symfony < 4:修改
symfony/app/config/parameters.yml,把database_host改为db - Symfony ≥ 4:编辑
symfony/.env,确保DATABASE_URL主机名是db,例如:DATABASE_URL="mysql://root:password@db:3306/symfony"
注意:不能写 localhost,容器内 localhost 指向自己,不是数据库服务。
一键启动与验证
在项目根目录运行:
-
docker-compose up(首次运行会自动拉镜像、构建 PHP/Nginx 容器,约 3–5 分钟) - 等终端日志停住:
• PHP 容器显示fpm is running, pid X
• Nginx 显示start worker processes
才代表服务真正就绪 - 访问:
• Symfony 应用:https://www.php.cn/link/1109171419a1b66ae0d9168429adfb61
• phpMyAdmin:https://www.php.cn/link/1109171419a1b66ae0d9168429adfb61:8080
• Kibana:https://www.php.cn/link/1109171419a1b66ae0d9168429adfb61:81
常见问题处理
启动后打不开?先检查这三项:
- hosts 文件是否生效(改完需硬刷新浏览器,Ctrl+F5 或 Cmd+Shift+R)
-
var/cache 权限是否正确(容器里属
www-data,宿主机无需手动 chown) -
数据库连接是否超时(首次启动时看到
ConnectionException别急删容器,等 10–20 秒再刷)
需要改端口、密码或启用 Xdebug?全在根目录的 .env 文件里调,比如:NGINX_PORT=8081、MYSQL_ROOT_PASSWORD=mysecretpass、PHP_XDEBUG_MODE=debug,改完执行 docker-compose build php 再 up。


















