Impossível reconstruir o discourse

sempre que tento ./launcher rebuild app, ele dá um erro.

root@amsaal:~# cd /var/discourse/
root@amsaal:/var/discourse# ./launcher rebuild app
x86_64 arch detectado.
fatal: No such ref: HEAD
fatal: No such ref: HEAD
Parando o container antigo

  • /usr/bin/docker stop -t 600 app
    app
    2.0.20241203-0251: Puxando de discourse/base
    Digest: sha256:d5d4e6d361d56745e37f2609db58a6970cc9b3fcd26d0b2dcba23d0cb581f067
    Status: Imagem está atualizada para 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: formato de referência inválido: nome do repositório (library/#) deve ser minúsculo.
    Veja ‘docker run --help’.
    cat: cids/app_bootstrap.cid: Arquivo ou diretório não encontrado
    bootstrap falhou com código de saída 125
    ** FALHA AO INICIAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
    ./discourse-doctor pode ajudar a diagnosticar o problema.
    O nome do container não pode estar vazio
    root@amsaal:/var/discourse#

Você verificou o status do repositório do launcher?

git status

root@amsaal:/var/discourse# git status

Ainda não há commits

Arquivos não rastreados:
(use “git add …” para incluir no que será commitado)
.github/
.gitignore
LICENSE
README.md
discourse-doctor
discourse-setup
image/
launcher
rebuild.log
samples/
scripts/
templates/
tests/

nada adicionado ao commit, mas arquivos não rastreados presentes (use “git add” para rastrear)
root@amsaal:/var/discourse#

Você deveria ter visto algo assim:

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

nothing to commit, working tree clean

então acho que de alguma forma seu diretório /var/discourse está quebrado - não está mais conectado ao repositório. Você de alguma forma arrumou, perdeu ou renomeou a subpasta .git?

1 curtida

Eu não toquei em nada, na verdade? Como posso consertar isso?

Desculpe, eu não sei. Você tem um subdiretório .git? O que há nele?

No meu caso, o arquivo de configuração se parece com isto:

# 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

Mas isso é apenas para referência. Não acho que a correção seja editar um arquivo de configuração!

1 curtida

Eu tenho o mesmo resultado

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

Parece que você deve ter mudado algo - seu último git status apresenta resultados muito diferentes do seu relatório anterior. Isso é misterioso!

então reinstalar o discourse pode resolver isso e você pode me aconselhar como posso fazer isso via SSH?

Para uma reinstalação completa, você precisa do seu backup completo (incluindo o arquivo app.yml) e um sistema operacional novo na sua instância.

As instruções estão aqui: INSTALL-cloud

Pode ser melhor tentar a instalação em uma nova instância. Você precisará adicionar o novo endereço IP a um subdomínio temporário no seu DNS. Ou, se você estiver confortável com o tempo de inatividade, basta atualizar seu DNS para o novo endereço IP.

Você precisa ter alguma noção do que está fazendo, caso contrário, precisará de ajuda. Desculpe, não posso ajudar com isso.