Ubuntu 22.04へのアップグレード後の再構築に関する問題

何時間も頭を悩ませましたが、助けを求める時が来ました。

デバッグログ:

https://privatebin.net/?b56249efe41b5599#8nt7yMQU2Hft4HysXSoZkxXQTYdR9MFv91qC9sbBgen

「いいね!」 1

Droplet(またはDockerコンテナ)でGitHubへの接続に問題が発生しています。

fatal: ‘GitHub - discourse/discourse: A platform for community discussion. Free, open, simple.’ にアクセスできません: ホスト github.com が解決できませんでした

GitHubにアクセスできるか確認していただけますでしょうか?

「いいね!」 2

Ah、つまり短期間に再構築しすぎたために、サーバーのIPがタイムアウトになったということでしょうか?

他のエラーは重要ではないのですか?

もう一度試しましたが、まだブロックされています。他に試せることはありますか、それとも24時間待ってからもう一度試すべきでしょうか?

github.com を ping または curl して、応答があるかどうかを確認できます。これは、レート制限ではなく、ファイアウォールまたは接続の問題である可能性があります。

「いいね!」 1

「ホストを解決できませんでした」は、DNSの問題、つまりサーバーがgithub.comのIPアドレスを見つけられないことを示唆しています。

==================== REBUILD LOG ====================
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date

これは、discourse_dockerリポジトリをどこか別の場所からクローンしていない限り、ホストがgithub.comを解決および接続できることを示唆しています。リポジトリのリモートをリストするには、次のコマンドで確認できます。

cd /var/discourse
git remote -v

これにより、次のように出力されるはずです。

origin	https://github.com/discourse/discourse_docker.git (fetch)
origin	https://github.com/discourse/discourse_docker.git (push)

それが事実である場合、github.comを解決できないという後続のエラーは、ホストは解決できるにもかかわらず、Dockerコンテナが解決できないことを示唆しており、Docker接続の問題を示唆しています。

「いいね!」 2

git remote -v は意図したとおりに出力されました。Docker のトラブルシューティングはどのように行えばよいでしょうか、それとも単純に再インストールすべきでしょうか?データが失われない限り、喜んで再インストールします。Discourse はデータベースとアップロードされたファイルをどこに保存しますか(次に何が起こるにしても、それらを個別にバックアップしたいです)?

/var/discourse/shared/standalone はコンテナ内のボリュームにマッピングされており、すべての永続データはそこに保存されます。

docker network ls で Docker ネットワークを一覧表示できます。私が確認したのは、デフォルトのブリッジネットワークと、その他の 2 つのネットワークです。コンテナは、明示的に別のネットワークを使用するように指示されない限り、デフォルトのブリッジネットワークを使用します。

デフォルトのブリッジネットワークが外部への接続を提供しなくなったことに関する情報を見つけました。推測ですが、Ubuntu 22.04 では Docker のバージョンが変更され、これが適用されるようになった可能性があります。つまり、Discourse コンテナはユーザー定義ブリッジを使用するように設定する必要があるかもしれません。

/var/discourse/containers/app.yml を編集して、一番下に追加してから再構築できると思います(ただし、テストはしていません)。

networks:
  default:
    driver: bridge

/var/discourse/shared/standalone/backups/default には、データベースとアップロードの重要な部分すべてを圧縮したバックアップがあるようです。

アイデアをありがとうございます。しかし、うまくいきませんでした。

Docker を再インストールするだけでよいでしょうか。それとも、その場合は、すべてを削除して Discourse を完全にクリーンインストールした方がよいでしょうか (Discourse | DigitalOcean Marketplace 1-Click App) からインストールしました)。

Discourse の管理画面でバックアップファイルをインポートするのは簡単だと思いますか?

standard install は公式にサポートされている唯一のインストール方法ですが、バックアップの復元に関する情報は以下にあります。DO 1-Click インストールでも同様の手順になるはずです。

1-Click アプリは明示的に Ubuntu 20.04 を使用しているようなので、それが変更されるまでは 20.04 のままにしておくのが良いでしょう。今後 3 年間はバグ修正/セキュリティアップデートが提供されるため、22.04 に移行する急ぎはありません。

ただし、Docker を再インストールしてみるのも良いでしょう。問題はおそらくアップグレードから生じたもので、Docker のネットワークが削除され、その後インストールによって再追加されることで修正される可能性があります。

結局、ドロップレットをUbuntu 22.04のクリーンコピーで再構築し、Discourseを手動で(標準的な方法で)再インストールしてから、バックアップをインポートしました。これは迅速かつ簡単で、最初からそうすればよかったと思いました。

皆様、ご協力ありがとうございました!

「いいね!」 2

22.04 への一般的な問題ではないとわかって便利です。

週末に do-release-upgrades を数回実行して 20.04 から 22.04 にアップグレードしましたが、Docker を再インストールすることなく、すべて正常に動作することを確認できました。ここ数週間で Ubuntu のリポジトリで何かが修正されたに違いありません。

これで、問題なくこのようなアップグレードを実行できるはずです。

「いいね!」 1