Erro de Atualização do Discourse: sua instalação do Docker não está funcionando corretamente

Há vários anos que hospedo uma instalação do Discourse em um droplet da DigitalOcean e atualizei o Discourse muitas vezes sem problemas, tanto pela página de administração quanto por SSH e usando a linha de comando. Esta é a primeira vez que tenho um problema. Hoje (8 de fevereiro de 2025), atualizei o contêiner Docker pela página de administração sem problemas. Em seguida, comecei a atualizar o Discourse e falhou. Fiz SSH e executei:

sudo ./launcher rebuild app

e recebi este erro:

WARNING: Docker version 20.10.14 deprecated, recommend upgrade to 24.0.7 or newer.

x86_64 arch detected.

WARNING: We are about to start downloading the Discourse base image

This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20250129-0720: Pulling from discourse/base

toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Unable to find image 'discourse/base:2.0.20250129-0720' locally

docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit.

See 'docker run --help'.

Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

(Não tenho mais acesso às mensagens de erro da página de atualização de administração, pois o servidor Discourse está inativo.)

Alguém sabe por que isso está acontecendo e o que preciso fazer?

Por favor, ajude!

Você precisa atualizar o docker, ou em breve.

É uma boa aposta que você também precisa atualizar seu sistema operacional.

O que lsb_release -a diz?

Mas isso é um pouco mais preocupante.

Talvez você possa esperar uma hora e tentar novamente?

Você deve ser capaz de reiniciar o contêiner antigo com

./launcher start app
1 curtida

Olá Jay,

Muito obrigado pela sua resposta!

Você pode recomendar alguma página da web com instruções sobre como atualizar o Docker?

Executar lsb_release -a retorna:

Nenhum módulo LSB está disponível.
ID do distribuidor:	Ubuntu
Descrição:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal

(Eu tenho adiado a atualização do Linux, pois nunca fiz um upgrade de SO em um droplet da DigitalOcean, mas sei que terei que encarar isso em breve.)

Eu olhei o site que você enviou sobre Uso e limites do Docker antes de postar aqui, mas não consigo entender nada. Eu tenho que pagar pelo Docker apenas para atualizar o Discourse?

Eu tentei reiniciar executando ./launcher start app, mas recebi uma mensagem de erro quase idêntica àquela quando executei ./launcher rebuild app.

Já se passou mais de uma hora, então tentei executar ./launcher rebuild app novamente, mas recebi o mesmo erro.

Agradeço muito qualquer orientação adicional que você possa fornecer.

1 curtida

EDIT: Ah, mas você tem o erro “muitas solicitações”. Acho que o que eu faria seria digitar

  docker login

e seguir as instruções. Parece que uma versão autenticada gratuita pode resolver seu problema.

Eu recomendaria apenas obter um novo e seguir Mover um site Discourse para outro VPS com rsync. Há pouca inatividade e, se algo der errado, você pode simplesmente excluir o novo droplet e tentar novamente.

Mas você está bem por enquanto, então você poderia apenas ser capaz de

sudo apt update
sudo apt upgrade
# ou se você quiser apenas atualizar o docker, isso provavelmente fará isso.
sudo apt install docker-ce
1 curtida

Olá Jay,

Executei sudo apt update e sudo apt upgrade sem incidentes. Em seguida, tentei executar sudo ./launcher rebuild app novamente e recebi o erro:

WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Unable to find image 'discourse/base:2.0.20250129-0720' locally
docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit.
See 'docker run --help'.
Your Docker installation is not working correctly

Note que é o mesmo erro de antes, exceto que agora a versão depreciada é 24.0.2 em vez de 20.10.14. Tentei sudo apt install docker-ce, mas recebo o mesmo erro ao executar sudo ./launcher rebuild app. Parece que ele não quer atualizar para 24.0.7 ou mais recente.

Acabei de criar com sucesso um login Docker no site do Docker. Posso fazer login no site do Docker, mas quando executo docker login na linha de comando e insiro meu nome de usuário e senha (que copiei e colei da minha chave de acesso para evitar erros de digitação), recebo:

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth": dial unix /var/run/docker.sock: connect: permission denied

Tentei várias vezes, caso eu tenha colado a senha errada, tudo em vão. Existe um login diferente que preciso criar?

Agradeço muito qualquer outro conselho que você possa me dar!

Isso é o melhor que você consegue com seu sistema operacional. Provavelmente é bom o suficiente.

Sim. Ele tentará atualizar apenas o docker. O Docker usa alguns nomes diferentes em alguns casos diferentes, então pensei que atualizar tudo seria uma solução mais segura.

Essas são as suas credenciais do docker que ele quer, não as suas credenciais do sistema operacional. Quando eu faço isso, recebo algo como isto:

USING WEB-BASED LOGIN
Para fazer login com credenciais na linha de comando, use 'docker login -u <username>'

Seu código de confirmação de dispositivo de uso único é: WZYX-ABCD
Pressione ENTER para abrir seu navegador ou envie seu código de dispositivo aqui: https://login.docker.com/activate

Você está executando isso como root, ou como algum usuário que não tem permissão para usar o docker?

Olá Jay,

Sim, o problema era que eu executei docker login em vez de sudo docker login, pois não estava rodando como root. Mas eu inseri meu nome de usuário e senha do Docker, não meu nome de usuário e senha do sistema operacional. Eu não sou tão ruim assim!

Eu acabei de executar sudo ./launcher rebuild app novamente e não obtive os erros! Ele me pediu para executá-lo novamente, então eu o fiz. Em seguida, executei sudo ./launcher start app e tudo está funcionando!

Muito obrigado! Eu só precisava ter um docker login (e então fazer o login, como root).

Você tem sido de uma ajuda tremenda! Obrigado novamente por sua generosidade e paciência! Espero que este tópico ajude outras pessoas que encontram o mesmo problema.

2 curtidas

Bem, eu não consigo adivinhar sempre o que faz sentido para quem.
Fico feliz que você tenha descoberto.
Obrigado pela atualização! Esta é a primeira vez que vejo esse problema e fico feliz que minha solução sugerida tenha funcionado. Estou me perguntando se este será um problema mais comum daqui para frente.

2 curtidas