自分のドメインの解決に失敗しましたか?

discourse.lubuntu.me で Discourse を運用しています。ベース URL としてそれが設定されています。

しかし、内部では、内部の certificate.svg リンクやユーザーへの挨拶を行う Discobot の組み込み機能に対して、500 エラーが発生しています。

SocketError (Failed to open TCP connection to discourse.lubuntu.me:443 (getaddrinfo: Name or service not known))
/usr/local/lib/ruby/2.6.0/net/http.rb:949:in `rescue in block in connect'

これは、Discourse を実行しているコンテナ内で DNS 検索ができないように見えます。この問題を修正する方法、あるいはより効果的にデバッグする方法はありますか?

コンテナ内および外からアドレスの解決を試みましたか?

このインスタンスはどのようにインストールされましたか?

このインスタンスは、こちらのインストールガイドに従ってインストールされました:discourse/docs/INSTALL.md at main · discourse/discourse · GitHub

つまり、ホストシステムとして Ubuntu 上でストレートな Docker インストールです。

ホストシステムはドメインの解決に問題ありませんが、LXD もホストシステム上で動作しているため、すべての DNS 要求をインターセプトしているようです。LXD が DNS を処理することで解決が破綻しているため、後でこれを修正する必要があります。

ただし、コンテナ内に入り、自分自身をドメインとして認識させるように強制すると「Connection Refused」エラーが返されます。そのため、HTTPS を提供する「インターネット面向け」のリバースプロキシに再度ポインタを設定しました。これは動作しているようです。しかし、これを行うには /etc/hosts を編集する必要がありました。Docker コンテナの起動プロセス中にこのエントリを「強制」して追加する方法があるか確認する必要がありますが、現時点では「動作している」ため、これは後の課題とします。