ブラウザからサイトにアクセスできません - 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 が nginx の再起動中にポート 80 を確保してしまったのでしょう。そして、再起動時に Discourse が nginx より先に起動できたのは幸運でした。リバースプロキシとして設定していない限り(discourse-setup では設定できません)、nginx をアンインストールするか無効にすべきです。

ありがとう、ジェイ。再構築中に素敵なページを表示させるために、nginx をリバースプロキシとして設定していました。