启动DDEV Laravel时遇错误:Web/DB容器就绪等待失败(ZFS)
排查ddev启动时web容器不健康问题
当执行ddev start出现Failed waiting for web/db containers to become ready: web container failed错误,且ddev-website-web容器始终不健康时,按以下步骤排查:
1. 查看容器日志定位根因
直接查看web容器的启动日志,这是最关键的一步:
ddev logs web # 或用docker命令查看更详细日志 docker logs ddev-website-web
日志里会明确显示容器启动失败的具体原因,比如依赖安装失败、配置文件语法错误、服务启动超时等。
2. 检查端口占用
web容器默认使用80/443端口,若被本地其他服务(如Nginx、Apache、微信开发者工具等)占用,会导致容器无法正常启动:
- 先停掉所有ddev服务:
ddev poweroff - 检查端口占用:
- Linux/macOS:
lsof -i :80或sudo netstat -tulpn | grep :80 - Windows:
netstat -ano | findstr ":80"
- Linux/macOS:
- 找到占用进程后杀掉,或者修改
.ddev/config.yaml中的http_port和https_port字段更换端口。
3. 重置容器与镜像缓存
镜像损坏或缓存冲突也会导致容器启动异常:
# 停掉所有ddev服务 ddev poweroff # 删除问题容器 docker rm -f ddev-website-web ddev-website-db # 强制重建容器并重新拉取镜像 ddev start --rebuild
4. 检查项目ddev配置
确认项目根目录下的.ddev配置是否正确:
- 查看
config.yaml,确保webimage版本与团队要求一致,没有错误的自定义配置 - 检查是否存在
docker-compose.*.yaml自定义配置文件,这些文件可能覆盖默认容器配置导致启动失败 - 排查
.ddev/web-build/或.ddev/commands/web/下的自定义脚本,脚本执行失败会直接导致容器不健康
5. 验证项目依赖是否完整
克隆仓库后,部分项目需要手动安装依赖:
# 进入容器执行依赖安装命令(以PHP项目为例) ddev exec composer install # Node项目则执行 ddev exec npm install
如果依赖安装过程中出现网络错误、版本冲突等问题,需要先解决这些问题再重启ddev。
6. 核对ddev版本兼容性
不同版本的ddev镜像配置存在差异,确保本地ddev版本与团队一致:
ddev --version
若版本不一致,升级或降级到团队指定的ddev版本后再尝试启动。
内容的提问来源于stack exchange,提问作者sneaky
相关产品推荐
相关产品推荐

