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
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).
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.
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.
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.
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.
Obrigado novamente pela sua ajuda. Quanto ao rsync, estou um pouco preocupado com a forma como as instruções dizem em tantas palavras:
configurar o novo servidor e sincronizar
parar o serviço no servidor antigo
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.