Discourseの再構築不可

エラーが発生したときに常に ./launcher rebuild app を実行しようとします。

root@amsaal:~# cd /var/discourse/
root@amsaal:/var/discourse# ./launcher rebuild app
x86_64 アーキテクチャを検出しました。
fatal: No such ref: HEAD
fatal: No such ref: HEAD
古いコンテナを停止しています

  • /usr/bin/docker stop -t 600 app
    app
    2.0.20241203-0251: discourse/base からプルしています
    Digest: sha256:d5d4e6d361d56745e37f2609db58a6970cc9b3fcd26d0b2dcba23d0cb581f067
    Status: イメージは discourse/base:2.0.20241203-0251 まで最新です
    docker.io/discourse/base:2.0.20241203-0251
    /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
    /usr/local/bin/pups --stdin
    docker: 無効な参照形式です: リポジトリ名 (library/#<NoMethodError) は小文字でなければなりません。
    ‘docker run --help’ を参照してください。
    cat: cids/app_bootstrap.cid: そのようなファイルやディレクトリはありません
    bootstrap は終了コード 125 で失敗しました
    ** BOOTSTRAP に失敗しました ** 上にスクロールして、以前のエラーメッセージを探してください。複数ある可能性があります。
    ./discourse-doctor が問題を診断するのに役立つかもしれません。
    コンテナ名は空にできません
    root@amsaal:/var/discourse#

ランチャーリポジトリのステータスを確認しましたか?

git status

root@amsaal:/var/discourse# git status

コミットはありません

追跡されていないファイル:
(コミットに含めるには「git add …」を使用してください)
.github/
.gitignore
LICENSE
README.md
discourse-doctor
discourse-setup
image/
launcher
rebuild.log
samples/
scripts/
templates/
tests/

コミットされていませんが、追跡されていないファイルがあります (追跡するには「git add」を使用してください)
root@amsaal:/var/discourse#

以下のような表示になっているはずです。

# git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

そのため、/var/discourse ディレクトリがリポジトリから切断されて壊れているようです。.git サブフォルダを整理したり、失ったり、名前を変更したりしませんでしたか?

「いいね!」 1

実際には何も触っていません。どうすれば修正できますか?

すみません、わかりません。.git サブディレクトリはありますか?中に何が入っていますか?

私の場合は、設定ファイルは次のようになります。

# cat .git/config 
[core]

	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = https://github.com/discourse/discourse_docker.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main

しかし、これは参考用です。設定ファイルを編集することが修正になるとは思いません!

「いいね!」 1

同じ結果になりました。

root@amsaal:/var/discourse# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote “origin”]
url = GitHub - discourse/discourse_docker: A Docker image for Discourse
fetch = +refs/heads/:refs/remotes/origin/
[branch “main”]
remote = origin
merge = refs/heads/main

そしてgit status

root@amsaal:/var/discourse# git status
On branch main
Your branch is based on ‘origin/main’, but the upstream is gone.
(use “git branch --unset-upstream” to fixup)

Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: .github/workflows/build.yml
modified: LICENSE
modified: README.md
modified: templates/postgres.13.template.yml
modified: templates/postgres.15.template.yml
modified: templates/postgres.template.yml
modified: templates/web.ssl.template.yml
modified: templates/web.template.yml

Untracked files:
(use “git add …” to include in what will be committed)
rebuild.log

no changes added to commit (use “git add” and/or “git commit -a”)

何か変更があったようですね。最新の git status の結果が、以前のレポートと大きく異なっています。これは謎ですね!

それを解決するためにディスコースを再インストールできますか?SSHから行う方法を教えていただけますか?

完全な再インストールには、完全なバックアップ(app.ymlファイルを含む)と、インスタンス上の新しいOSが必要です。

手順はこちらです:INSTALL-cloud

新しいインスタンスでインストールを試すのが最善かもしれません。DNSに一時的なサブドメインで新しいIPアドレスを追加する必要があります。または、ダウンタイムに問題がなければ、DNSを新しいIPアドレスに更新するだけです。

ある程度の知識が必要です。そうでない場合は、ヘルプが必要です。申し訳ありませんが、私にはそのヘルプはできません。