teward
(Thomas Ward)
2019 年 7 月 8 日午後 2:20
1
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 検索ができないように見えます。この問題を修正する方法、あるいはより効果的にデバッグする方法はありますか?
Stephen
(Stephen)
2019 年 7 月 8 日午後 2:36
2
コンテナ内および外からアドレスの解決を試みましたか?
このインスタンスはどのようにインストールされましたか?
teward
(Thomas Ward)
2019 年 7 月 8 日午後 2:52
3
このインスタンスは、こちらのインストールガイドに従ってインストールされました:discourse/docs/INSTALL.md at main · discourse/discourse · GitHub
つまり、ホストシステムとして Ubuntu 上でストレートな Docker インストールです。
ホストシステムはドメインの解決に問題ありませんが、LXD もホストシステム上で動作しているため、すべての DNS 要求をインターセプトしているようです。LXD が DNS を処理することで解決が破綻しているため、後でこれを修正する必要があります。
ただし、コンテナ内に入り、自分自身をドメインとして認識させるように強制すると「Connection Refused」エラーが返されます。そのため、HTTPS を提供する「インターネット面向け」のリバースプロキシに再度ポインタを設定しました。これは動作しているようです。しかし、これを行うには /etc/hosts を編集する必要がありました。Docker コンテナの起動プロセス中にこのエントリを「強制」して追加する方法があるか確認する必要がありますが、現時点では「動作している」ため、これは後の課題とします。