Не удалось запустить, ddev-маршрутизатор не смог стать готовым, дублировать восходящий поток

#docker #nginx #drupal #ddev

#docker #nginx #drupal #ddev

Вопрос:

Ранее у меня был локальный сайт drupal, работающий в ddev, затем каким-то образом код был удален, а контейнер ddev остался сконфигурированным.

Когда я попытался перестроить свой локальный сайт, я настроил его с local. поддоменом, установив следующее в .ddev/config.yaml :

 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 навсегда или как мне, по крайней мере, устранить указанную выше ошибку?

Комментарии:

1. Проблема в вашей конфигурации nginx, имя домена написано дважды, возможно, разные включаемые файлы

Ответ №1:

Не уверен, каково официальное решение, но я «исправил» его с помощью:

  1. Удалены проблемные контейнеры docker
    • Запустил docker ps -a , чтобы вывести список всех контейнеров docker
    • Ran, docker rm -f ID где ID — идентификаторы названных контейнеров docker:
      • ddev-mysitename-web
      • ddev-mysitename-dba
      • ddev-mysitename-db
  2. Сброс Docker к заводским настройкам по умолчанию
  3. Повторно запустил установщик ddev (обратите внимание, что я на Windows, кстати)
  4. Запустите ddev start на сайте

Не идеально, но то, что я сделал выше, исправило мою проблему.

Примечание: Это приведет к удалению баз данных ddev для всех ваших локальных сайтов

Комментарии:

1. Хорошая работа! В следующий раз легко ` docker rm -f $ (docker ps -aq)`, предполагая, что нет никаких контейнеров, отличных от ddev, которые вы хотите сохранить. Также помните, что ddev rm -a обычно удаляет большинство вещей, которые необходимо удалить.

2. ddev rm удалось удалить один из моих дублирующихся сайтов, но когда я попытался запустить его на оставшемся сайте, он пожаловался, что не может его найти. Я был в курсе docker rm -f $(docker ps -aq) , но это удаляет ВСЕ контейнеры, нет? Мне было неудобно удалять все, если в этом не было необходимости.

Ответ №2:

Удаление контейнера ddev-router с помощью ddev poweroff , затем перезапуск DDEV для воссоздания контейнера сработал для меня.