Impossibile ricostruire discourse

ogni volta che provo a ./launcher rebuild app, ricevo un errore.

root@amsaal:~# cd /var/discourse/
root@amsaal:/var/discourse# ./launcher rebuild app
x86_64 arch rilevato.
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#

Hai controllato lo stato del repository del launcher?

git status

root@amsaal:/var/discourse# git status

Nessun commit ancora

File non tracciati:
(usa “git add …” per includerli in ciò che verrà committato)
.github/
.gitignore
LICENSE
README.md
discourse-doctor
discourse-setup
image/
launcher
rebuild.log
samples/
scripts/
templates/
tests/

niente aggiunto al commit ma sono presenti file non tracciati (usa “git add” per tracciarli)
root@amsaal:/var/discourse#

Dovresti aver visto qualcosa di simile a questo:

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

nothing to commit, working tree clean

quindi penso che in qualche modo la tua directory /var/discourse sia danneggiata e non sia più collegata al repository. Hai in qualche modo riordinato, perso o rinominato la sottocartella .git?

non ho toccato nulla, in realtà? come posso risolvere il problema?

Mi dispiace, non lo so. Hai una sottodirectory .git? Cosa contiene?

Nel mio caso, il file di configurazione è così:

# 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

Ma questo è solo a scopo di riferimento. Non credo che la soluzione sia modificare un file di configurazione!

Ho lo stesso risultato

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

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

Sembra che tu debba aver cambiato qualcosa: il tuo ultimo git status fornisce risultati molto diversi dal tuo rapporto precedente. È misterioso!

quindi reinstallare discourse può risolverlo e puoi consigliarmi come posso farlo da SSH?

Per una reinstallazione completa, è necessario il backup completo (incluso il file app.yml) e un nuovo sistema operativo sull’istanza.

Le istruzioni sono qui: INSTALL-cloud

Potrebbe essere meglio provare l’installazione su una nuova istanza. Sarà necessario aggiungere il nuovo indirizzo IP a un sottodominio temporaneo nel DNS. Oppure, se si è soddisfatti del tempo di inattività, è sufficiente aggiornare il DNS al nuovo indirizzo IP.

È necessario avere un’idea di ciò che si sta facendo, altrimenti è necessario aiuto. Mi dispiace, non posso essere d’aiuto.