Unfähig, Discourse neu aufzubauen

Wenn ich versuche, ./launcher rebuild app auszuführen, erhalte ich eine Fehlermeldung.

root@amsaal:~# cd /var/discourse/
root@amsaal:/var/discourse# ./launcher rebuild app
x86_64 arch detected.
fatal: No such ref: HEAD
fatal: No such ref: HEAD
Stopping old container

  • /usr/bin/docker stop -t 600 app
    app
    2.0.20241203-0251: Pulling from discourse/base
    Digest: sha256:d5d4e6d361d56745e37f2609db58a6970cc9b3fcd26d0b2dcba23d0cb581f067
    Status: Image is up to date for 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: invalid reference format: repository name (library/#) must be lowercase.
    See ‘docker run --help’.
    cat: cids/app_bootstrap.cid: No such file or directory
    bootstrap failed with exit code 125
    ** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
    ./discourse-doctor may help diagnose the problem.
    Container name cannot be empty
    root@amsaal:/var/discourse#

Haben Sie den Status des Launcher-Repositorys überprüft?

git status

root@amsaal:/var/discourse# git status

No commits yet

Untracked files:
(use “git add …” to include in what will be committed)
.github/
.gitignore
LICENSE
README.md
discourse-doctor
discourse-setup
image/
launcher
rebuild.log
samples/
scripts/
templates/
tests/

nothing added to commit but untracked files present (use “git add” to track)
root@amsaal:/var/discourse#

Sie hätten etwas wie das sehen sollen:

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

nothing to commit, working tree clean

Ich glaube also, dass Ihr /var/discourse-Verzeichnis irgendwie kaputt ist – nicht mehr mit dem Repository verbunden. Haben Sie den Unterordner .git aufgeräumt, verloren oder umbenannt?

1 „Gefällt mir“

Ich habe tatsächlich nichts angefasst? Wie kann ich das beheben?

Entschuldigung, das weiß ich nicht. Haben Sie ein .git-Unterverzeichnis? Was ist darin?

In meinem Fall sieht die Konfigurationsdatei so aus:

# 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

Aber das dient nur zur Referenz. Ich glaube nicht, dass die Lösung darin besteht, eine Konfigurationsdatei zu bearbeiten!

1 „Gefällt mir“

Ich habe das gleiche Ergebnis

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

Und 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”)

Es sieht so aus, als hätten Sie etwas geändert – Ihr letzter git status liefert sehr andere Ergebnisse als Ihr vorheriger Bericht. Das ist mysteriös!

Kann ich Discourse neu installieren, um das Problem zu beheben, und können Sie mir Ratschläge geben, wie ich das über SSH tun kann?

Für eine vollständige Neuinstallation benötigen Sie Ihr vollständiges Backup (einschließlich Ihrer app.yml-Datei) und ein frisches Betriebssystem auf Ihrer Instanz.

Die Anweisungen finden Sie hier: INSTALL-cloud

Es könnte am besten sein, die Installation auf einer neuen Instanz zu versuchen. Sie müssen die neue IP-Adresse zu einer temporären Subdomain in Ihrem DNS hinzufügen. Oder, wenn Sie mit der Ausfallzeit zufrieden sind, aktualisieren Sie einfach Ihr DNS auf die neue IP-Adresse.

Sie müssen eine gewisse Vorstellung davon haben, was Sie tun, sonst benötigen Sie Hilfe. Tut mir leid, dabei kann ich Ihnen nicht helfen.