Tenho uma instalação do 2.5.0.beta4.
Ele seria atualizado, mas no processo quebrou e meu site não carrega mais.
Tenho todos os arquivos e banco de dados, etc. Foi via docker no Ubuntu 16.
Quais são minhas opções para consertar isso?
Não tenho ideia quando se trata de shell, então terei que pedir a alguém para fazer isso por mim, mas preciso saber sem atirar no escuro, o que devo procurar fazer.
Qualquer ajuda é bem-vinda.
Você pode fornecer mais detalhes, o contêiner está carregando (docker ps)? Alguma mensagem de erro/log que possa indicar o caminho? Você está auto-hospedando ou em algum host de terceiros?
Olá Mike, obrigado por responder. Aqui está o que recebo.
Quando executo ./discourse-docto, recebo este erro:
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e
RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e
RUBY_GC_HEAP_INIT_SLOTS=400000 -e
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e
DISCOURSE_DB_SOCKET=/var/run/postgresql -e
DISCOURSE_DB_HOST= -e
DISCOURSE_DB_PORT= -e
LETSENCRYPT_DIR=/shared/letsencrypt -e
DISCOURSE_FORCE_HTTPS=true -e
DISCOURSE_HOSTNAME=discuss.domain -e
DISCOURSE_DEVELOPER_EMAILS=info@domain -e
DISCOURSE_SMTP_ADDRESS=mail3.domain -e
DISCOURSE_SMTP_PORT=587 -e
DISCOURSE_SMTP_USER_NAME=xxx@domain -e
DISCOURSE_SMTP_PASSWORD=xxx -e
LETSENCRYPT_ACCOUNT_EMAIL=info@domain -h
Ubuntu-1804-bionic-64-minimal-app -e
DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:8d:5a:f6:a3:11 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
Failed to restart the container.
Mesmo erro quando tento executar /launcher rebuild app
o docker é a versão mais recente
também vejo este erro no log do doctor:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & find /var/www/discourse ! -user discourse -exec chown discourse {} + failed with return #<Process::Status: pid 1929 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,\\\"\\\"); print $0 }' Gemfile.lock)", "find $home ! -user discourse -exec chown discourse {} \\+"]}
bootstrap failed with exit code 1
** 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.
f4d0b782e3d1c3deccb5e3d6c186a08ebbaaea22ed37d19a2ff07b7688c83926
que tipo de atualização você estava fazendo? Eu verificaria o arquivo app.yml em busca de erros de digitação e, em seguida, executaria uma reconstrução completa novamente.
Sua versão do Docker é muito antiga e isso está acontecendo porque seu Ubuntu é muito antigo.
Você tem um backup? Basta iniciar um novo VPS no Ubuntu 22 e restaurá-lo.
Não tenho um backup, apenas um snapshot do VPS quando ele estava funcionando pela última vez, mas ele não carrega após a restauração.
Docker version 23.0.3, build 3e7cbfd
app.yml está OK, validado em https://www.yamllint.com
O erro é sobre esta linha no launcher:
cidbootstrap=cids/\"$config\"_bootstrap.cid
local_discourse=local_discourse
image=\"discourse/base:2.0.20230409-0052\"
docker_path=`which docker.io 2\u003e /dev/null || which docker`
git_path=`which git`
local_discourse=local_discourse
Alguma forma de obter dados ou fazer backup nessa situação?
Os arquivos do banco de dados devem estar acessíveis. No meu servidor de produção, eles estão em /var/discourse/shared/standalone/postgres_data, o seu pode estar em um local semelhante.
Sugiro fazer um backup COMPLETO do sistema em outro servidor antes de prosseguir, especialmente todos os diretórios que estão sob um diretório ‘discourse’.
Na ausência de um backup atual (suficiente), eu criaria um novo servidor usando uma versão mais recente do Ubuntu (e, portanto, do Docker) e, em seguida, copiaria todos os diretórios sob as árvores do Discourse para ele, incluindo todos os arquivos do PostgreSQL. (Ainda não precisei fazer isso em um servidor Discourse, mas administro bancos de dados PostgreSQL há 20 anos e, se os arquivos do banco de dados estiverem intactos, isso ajuda a recriar/reconstruir as coisas.)
Faz tempo que este sistema não é atualizado? Se a resposta a essa pergunta for ‘sim’, pode haver complicações ao tentar copiar arquivos existentes sob os diretórios do Discourse para um novo servidor, porque essa realmente não é a maneira correta de fazer isso; um backup do Discourse tem muito mais do que apenas os arquivos do banco de dados PostgreSQL. (É por isso que tento fazer um backup antes mesmo de uma pequena atualização, embora admito que nem sempre o faço.)
Seu backup mais recente do Discourse provavelmente está em um diretório semelhante a este:
/var/discourse/shared/standalone/backups/default
Olá Mike, obrigado pelas suas respostas, é muito apreciado.
A atualização falhou e em algum momento o SSL parou de se renovar automaticamente, então, enquanto tentava fazer tudo isso, acabei com este cenário.
Vou tentar isso, estou tentando reconstruir o aplicativo, mas estou com falta de espaço, tenho 15 GB usados pelo discourse por algum motivo.
Além de reconstruir, existe uma maneira de iniciar o discourse como um comando de inicialização?
Obrigado novamente.
Você provavelmente tem várias imagens de contêineres sobrando.
Executar ‘docker images’ as listará. No meu sistema de produção, por exemplo, isso lista 7 imagens, cada uma com cerca de 3,5 GB, então isso soma um pouco de espaço; meu sistema sandbox mostra mais de 20 delas. Você poderia excluir algumas dessas imagens para liberar espaço, ou copiá-las para um servidor separado se tiver espaço disponível neles.
Eu presumo que ‘docker ps’ não mostre um contêiner em execução.
Você já tentou iniciar um contêiner mais antigo para ver se isso traz o site para cima? Então você pode fazer um backup.
O Launcher deve funcionar para isso, eu acho que ele serve em grande parte como uma interface para comandos do docker, mas também pode realizar outras tarefas necessárias para iniciar o discourse.
Olá Mike, engraçado que só há 1 contêiner lá. Consegui liberar espaço limpando os logs, etc. Mas não tive sorte. Há outro problema que não consigo encontrar. Seguirei suas outras instruções para ver se consigo ativá-lo usando métodos manuais, por exemplo, copiando arquivos e banco de dados para uma versão posterior.
Quando executo o docker run, recebo:
docker run discourse
Unable to find image 'discourse:latest' locally
docker: Error response from daemon: pull access denied for discourse, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
O que acontece se você tentar o launcher?
./launcher start app
Retorna o seguinte:
.....truncated
Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon:
pull access denied for local_discourse/app,
repository does not exist or may require 'docker login': denied:
requested access to the resource is denied.
O que você obtém de ‘docker images’?
Apenas um:
discourse/base 2.0.20230409-0052 08afe7103ce8
Consigo reproduzir mais ou menos as mensagens de erro que você está recebendo ao trabalhar com uma imagem mais antiga, mas até agora não encontrei uma maneira de forçar o carregamento dessa imagem.
Não tenho certeza do que mais posso sugerir neste momento.
Olá Mike, sua solução marcada anteriormente como solução resolveu um pouco. Copiei todos os arquivos para um novo VPS e funcionou após algumas alterações.
Obrigado a todos pela ajuda.
Fico feliz que você tenha encontrado uma solução, feliz em ter ajudado. Certifique-se de fazer backups regularmente. ![]()
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.