Outro discourse offline "bootstrap falhou com código de saída 5"

Olá Comunidade! Sinto muito que tenhamos que nos encontrar nestas circunstâncias. O Discourse está offline após uma atualização falha.

Mesma história de.

Discourse offline after failed upgrade "bootstrap failed with exit code 5"

Tentativa de atualização para v3.2.0.beta3

Ainda estou no Ubuntu 16.04.

Felizmente, ainda tenho as imagens Docker anteriores (espero), mas não tenho certeza do que fazer para restaurar os serviços. Também estou usando DigitalOcean.

Erro

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --retry 3 --jobs 4' falhou com retorno #<Process::Status: pid 448 exit 5>
Localização da falha: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falhou com os parâmetros {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle config --local deployment true'", "su discourse -c 'bundle config --local without \\\"development test\\\"'", "su discourse -c 'bundle install --retry 3 --jobs 4'"]}
bootstrap falhou com código de saída 5
** FALHA AO INICIALIZAR ** 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.
e9fead51a802981ae53f85f54dc8bf7bf9fae5c1dab3e06e0d77ea0930ffb261

Alguém pode ajudar?

Embora eu tenha as imagens antigas, eu removi a imagem mais recente…

docker rmi 51421f454322 -f

Eu tenho os contêineres antigos, mas quando tento executar ./launcher start app, ele parece preferir essa imagem excluída.

root@hostname:/var/discourse# ./launcher start app
WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml

starting up existing container
+ /usr/bin/docker start app
app

root@hostname:/var/discourse# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                      NAMES
afeec2777503        51421f454322        “/sbin/boot”        3 hours ago         Up 5 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app
root@hostname:/var/discourse# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
discourse/base      2.0.20231218-0429   984f729957df        12 days ago         3.14GB

Existe uma maneira de prosseguir com o ID da imagem 984f729957df?

O mais fácil é prosseguir e iniciar um novo droplet e copiar /var/discourse para ele e reconstruir lá. Isso resolverá o problema em vez de mitigá-lo.

Existe um comando do launcher que lhe dará o comando do docker, o que pode ajudar. Você pode olhar o script do launcher para encontrar o nome dele (mas estou no meu celular).

1 curtida

Parece que você está sugerindo: ./launcher start-cmd app

Ele produz bastante, começando com + true run --shm-size=512m -d --restart=always...

Arriscando, tentei:
docker + true run 984f729957df --shm-size=512m -d --restart=always ... sem sucesso.

container_linux.go:247: starting container process caused "exec: \"--shm-size=512m\": executable file not found in $PATH"
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"--shm-size=512m\": executable file not found in $PATH".

Qualquer ajuda que você puder fornecer é bem-vinda. Obrigado.

Sim. Algo assim. Não sei como fazer isso. Você pode ter excluído a única imagem utilizável.

Minha recomendação continua sendo iniciar um novo droplet e copiar as coisas para lá. Se você fosse um dos meus clientes, seria o que eu faria.

Obrigado pela sugestão. Não sou fã de migrações não planejadas, mas parece que é isso que vai acontecer. Vou presumir que você está se referindo a isto? Move a Discourse site to another VPS with rsync

Haverá alguma instrução adicional se tivermos habilitado o DO Spaces (armazenamento S3)?

Dado o período do ano, será muito difícil (leia-se: provavelmente impossível) coordenar os outros para as mudanças necessárias em tempo hábil.

Eu prefiro reverter para o estado em que estava funcionando pela última vez primeiro, para que eu possa planejar uma migração, em vez disso.

Alguém pode ajudar?

Não, se você seguiu Configurar um provedor de armazenamento de objetos compatível com S3 para uploads. Se você tiver as configurações no banco de dados, pode ser mais complicado se tentar restaurar em vez de usar rsync.

Mover para um novo droplet é de baixo risco, pois você pode simplesmente alterar o DNS de volta para o seu site desabilitado, mas se você não tiver acesso ao DNS e ao DigitalOcean, estará preso.

Parece que você esqueceu de citar algo com o comando start. Parece que é isso que você quer fazer.

Boa sorte

Configure um provedor de armazenamento de objetos compatível com S3 para uploads

Configurei este serviço em 2016, então infelizmente parece que temos as configurações em um banco de dados? Não há parâmetros S3 em app.yml

Existem outras armadilhas das quais devo estar ciente?

Se você usar o rsync, tudo ficará bem. Em seguida, você pode mudar para a configuração recomendada. Você pode ter problemas se tentar uma restauração de banco de dados.

1 curtida

Obrigado novamente pela sua ajuda. Quanto ao rsync, estou um pouco preocupado com a forma como as instruções dizem em tantas palavras:

  1. configurar o novo servidor e sincronizar
  2. parar o serviço no servidor antigo
  3. sincronizar novamente, mas com --delete

Isso parece volátil e também não é possível no meu cenário. Isso será uma preocupação? Sinto que se trata apenas de garantir que qualquer coisa que aconteceu desde o último rsync no fórum seja sincronizada, mas posso estar errado.

Atualização:
Estamos de volta online com um Droplet totalmente novo.

Fico feliz em saber agora que uma migração é relativamente simples. Teria sido muito melhor se a atualização não tivesse quebrado o Droplet antigo.

Sei que é feriado, mas seria ótimo se alguém da equipe de desenvolvimento pudesse dedicar algum tempo a isso. Não acho que isso seja um caso isolado. Fui marcado em outro tópico onde uma coleção tem crescido.

2 curtidas