i先前在DDEV上有一个本地Drupal站点,然后以某种方式将代码删除了DDEV容器剩余的配置。
当我尝试重建本地网站时,我通过在.ddev/config.yaml
中设置以下内容,将其设置为local.
子域:
additional_hostnames:
- local.mysitename
在重新配置DDEV的过程中,我最终得到了两个DDEV容器,当我尝试启动容器时,我的名称相同,以下错误。
Failed to start mysitename: ddev-router failed to become ready: logOutput=2019/03/19 22:29:32 [emerg] 15415#15415: duplicate upstream "local.mysitename.ddev.local-80" in /etc/nginx/conf.d/default.conf:198
nginx: [emerg] duplicate upstream "local.mysitename.ddev.local-80" in /etc/nginx/conf.d/default.conf:198
nginx: configuration file /etc/nginx/nginx.conf test failed, err=container /ddev-router unhealthy: 2019/03/19 22:29:32 [emerg] 15415#15415: duplicate upstream "local.mysitename.ddev.local-80" in /etc/nginx/conf.d/default.conf:198
nginx: [emerg] duplicate upstream "local.mysitename.ddev.local-80" in /etc/nginx/conf.d/default.conf:198
nginx: configuration file /etc/nginx/nginx.conf test failed
从ddev中删除容器并重新配置似乎无济于事。
如何永久从DDEV中删除两个容器,或者如何至少解决上述错误?
不确定官方解决方案是什么,但我将其"修复"为:
- 删除了问题码头容器
- 运行
docker ps -a
列出所有Docker容器 - ran
docker rm -f ID
其中ID
是docker容器的ID:-
ddev-mysitename-web
-
ddev-mysitename-dba
-
ddev-mysitename-db
-
- 运行
- 重置Docker到工厂默认值
- 重新运行DDEV安装程序(注意我在Windows btw上)
- 在网站上运行
ddev start
不是理想的,但是我上面做的是解决我的问题的原因。
注意:这将擦除所有本地站点的DDEV DB
使用ddev poweroff
卸下DDEV-ROUTER容器,然后重新启动DDEV以重新创建对我工作的容器。
对我来说,我可以在检查所有添加的docker-compose-*。yaml文件后修复它。检查主机名,公开端口和环境很重要。由于它在后台使用traefik,因此必须将环境HTTP_EXPOSE设置为我公开的端口,否则将采用默认端口,在我的原因中,这将是80,主项目也将80用作同一端口。这就是为什么路由器会告诉我我上游有重复的原因。
还确保重新启动DDEV并检查卷。