Impossible de reconstruire discourse

chaque fois que j’essaie de ./launcher rebuild app, il y a une erreur.

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#

Avez-vous vérifié le statut du dépôt du lanceur ?

git status

root@amsaal:/var/discourse# git status

Aucun commit pour le moment

Fichiers non suivis :
(utilisez « git add … » pour inclure dans ce qui sera validé)
.github/
.gitignore
LICENSE
README.md
discourse-doctor
discourse-setup
image/
launcher
rebuild.log
samples/
scripts/
templates/
tests/

rien ajouté au commit mais des fichiers non suivis sont présents (utilisez « git add » pour les suivre)
root@amsaal:/var/discourse#

Vous auriez dû voir quelque chose comme ceci :

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

nothing to commit, working tree clean

donc je pense que votre répertoire /var/discourse est cassé - il n’est plus connecté au dépôt. Avez-vous d’une manière ou d’une autre nettoyé, perdu ou renommé le sous-dossier .git ?

1 « J'aime »

Je n’ai rien touché en fait ? Comment puis-je résoudre ce problème ?

Désolé, je ne sais pas. Avez-vous un sous-répertoire .git ? Qu’y a-t-il dedans ?

Dans mon cas, le fichier de configuration ressemble à ceci :

# 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

Mais ceci est à titre de référence. Je ne pense pas que la solution soit de modifier un fichier de configuration !

1 « J'aime »

J’ai le même résultat

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

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

Il semble que vous ayez changé quelque chose - votre dernier git status donne des résultats très différents de votre rapport précédent. C’est mystérieux !

Alors, la réinstallation de Discourse peut-elle résoudre le problème et pouvez-vous me conseiller sur la façon de le faire depuis SSH ?

Pour une réinstallation complète, vous avez besoin de votre sauvegarde complète (y compris votre fichier app.yml) et d’un nouvel OS sur votre instance.

Les instructions sont ici : INSTALL-cloud

Il serait peut-être préférable d’essayer l’installation sur une nouvelle instance. Vous devrez ajouter la nouvelle adresse IP à un sous-domaine temporaire dans votre DNS. Ou, si vous êtes d’accord avec le temps d’arrêt, mettez simplement à jour votre DNS vers la nouvelle adresse IP.

Vous devez avoir une certaine idée de ce que vous faites, sinon vous avez besoin d’aide. Désolé, je ne peux pas vous aider.