Fedora 39下ddev-router无法启动,请求技术协助
问题描述
自一月起基于Mautic项目开发,使用捆绑的ddev启停服务,此前在Fedora 39上运行正常。两个月前某次Fedora系统更新后,执行ddev start时触发ddev-router就绪失败错误:
Starting ddev-router if necessary...
Container ddev-router Created
Container ddev-router Started
Failed to start mautic-5.1.0: ddev-router failed to become ready; debug with 'docker logs ddev-router' and 'docker inspect --format "{{json .State.Health }}" ddev-router'; logOutput=, err=ddev-router container is unhealthy: , more info with [
docker logs ddev-router
docker inspect --format "{{ json .State.Health }}" ddev-router | docker run -i --rm ddev/ddev-utilities jq -r
已完成ddev官方故障排查流程,对比Linux Mint上同项目的正常运行状态,docker logs ddev-router输出无异常,推测问题由Fedora系统更新引发。
解决方案
1. 彻底重置ddev-router及相关资源
清理现有router容器和冗余网络后重新初始化:
ddev poweroff docker rm -f ddev-router docker network prune -f ddev start
2. 排查Fedora防火墙与SELinux限制
Fedora更新可能修改了安全策略,导致ddev-router健康检查端口无法正常通信:
- 临时关闭SELinux测试:
执行sudo setenforce 0ddev start验证是否恢复正常,若有效则永久调整SELinux端口规则:sudo semanage port -a -t http_port_t -p tcp 80 sudo semanage port -a -t http_port_t -p tcp 443 - 开放防火墙HTTP/HTTPS服务:
sudo firewall-cmd --add-service=http --add-service=https --permanent sudo firewall-cmd --reload
3. 更新ddev至最新稳定版
旧版ddev可能与Fedora 39的容器环境不兼容,执行更新:
ddev self-update
4. 升级Docker到兼容版本
确保Docker版本与Fedora 39、当前ddev版本匹配:
sudo dnf update docker-ce docker-ce-cli containerd.io
5. 指定ddev-router镜像版本
尝试切换到特定版本的router镜像,避免镜像兼容性问题:
ddev config global --router-image=ddev/ddev-router:v1.22.0 ddev poweroff && ddev start
内容的提问来源于stack exchange,提问作者comanche76

