Сайт недоступен из браузера — проблемы с Docker

Я пытался установить Forest Admin, и для этого требовался docker-compose.

Так как у меня его не было, я установил:

sudo apt install docker-compose

Но при попытке запустить его возникла ошибка:

docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

Я перепробовал несколько способов, и один из рекомендуемых — перезапуск Docker:

sudo systemctl restart docker
Failed to restart docker.service: Unit docker.service is masked.

Тогда я снял маскировку и перезапустил, но после этого не смог получить доступ к приложению:

sudo systemctl unmask docker
Removed /etc/systemd/system/docker.service.

sudo systemctl restart docker
# no error

Мне удалось пересобрать образ, и процесс завершился без ошибок:

sudo /var/discourse/launcher rebuild app

Однако при переходе по URL приложение недоступно.

В отчаянии я также пробовал обновить Docker и несколько раз пересобрать образ, но безрезультатно:

wget -qO- https://get.docker.com/ | sh

sudo /var/discourse/launcher rebuild app

У меня больше нет идей. Есть ли что-то ещё, что можно попробовать?

Я хотел бы избежать восстановления из резервной копии, так как при этом я потеряю некоторые данные, но если это единственный способ, то какой подход будет лучшим?

  • Восстановить последнюю резервную копию Digital Ocean
  • Восстановить последнюю резервную копию Discourse

Я не могу понять, сломал ли ты Docker или Forest Admin мешает работе Discourse. Какую проблему решает Forest Admin?

Спасибо, Джей. Давайте забудем про Forest Admin. Я пока его удалил. Есть ли что-то ещё, что я мог бы сделать для диагностики проблемы?

Я почти уверен, что сломал Docker. На всякий случай, если это имеет значение: до этого у меня был Docker 18.09.6, сборка 481bc77, а теперь у меня 20.10.2, сборка 2291f61.

Хорошо. Оказалось, что решение было намного проще: мне нужно было просто перезапустить nginx :sweat_smile:

Когда я попытался это сделать, получил такую ошибку:

sudo service nginx restart
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

В логах я не заметил ничего очевидного, но перезагрузка сервера помогла:

sudo shutdown -r now

Теперь сайт работает корректно.

Вам не нужен nginx. Скорее всего, при перезапуске Discourse удалось захватить порт 80, пока nginx ещё перезагружался. Вам повезло, что при перезагрузке системы Discourse запустился раньше nginx. Вам следует удалить или отключить nginx (если только вы не настроили его как обратный прокси, что невозможно сделать с помощью discourse-setup).

Спасибо, Джей. Я настроил nginx как прокси-сервер, чтобы показывать красивую страницу во время пересборки.