Errore di aggiornamento Discourse: la tua installazione di Docker non funziona correttamente

Ho ospitato un’installazione di Discourse su un droplet DigitalOcean per diversi anni e ho aggiornato Discourse molte volte senza problemi, sia tramite la pagina di amministrazione che connettendomi via SSH e utilizzando la CLI. Questa è la prima volta che ho un problema. Oggi (8 febbraio 2025) ho aggiornato il container Docker tramite la pagina di amministrazione senza problemi. Poi ho iniziato ad aggiornare Discourse, e questo è fallito. Mi sono connesso via SSH ed ho eseguito:

sudo ./launcher rebuild app

e ho ottenuto questo errore:

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

(Non ho più accesso ai messaggi di errore dalla pagina di aggiornamento dell’amministratore poiché il server Discourse è inattivo.)

Qualcuno sa perché sta succedendo questo e cosa devo fare?

Aiuto!

Devi aggiornare docker, o presto dovrai farlo.

È una buona scommessa che dovrai aggiornare anche il tuo sistema operativo.

Cosa dice lsb_release -a?

Ma questo è un po’ più preoccupante.

Forse puoi aspettare un’ora e riprovare?

Dovresti essere in grado di riavviare il vecchio container con

./launcher start app
1 Mi Piace

Ciao Jay,

Grazie mille per la tua risposta!

C’è una pagina web che puoi consigliare con le istruzioni su come aggiornare Docker?

Eseguendo lsb_release -a si ottiene:

Nessun modulo LSB disponibile.
ID distributore:	Ubuntu
Descrizione:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal

(Ho rimandato l’aggiornamento di Linux, dato che non ho mai eseguito un aggiornamento del sistema operativo su un droplet DigitalOcean, ma so che dovrò farlo presto.)

Ho consultato il sito web che hai inviato riguardo all’utilizzo e ai limiti di Docker prima di pubblicare qui, ma non riesco a capirci nulla. Devo pagare per Docker solo per aggiornare Discourse?

Ho provato a riavviare eseguendo ./launcher start app ma ho ottenuto un messaggio di errore quasi identico a quello che ho ottenuto eseguendo ./launcher rebuild app.

Sono passate più di due ore, quindi ho appena provato a eseguire di nuovo ./launcher rebuild app, ma ho ottenuto lo stesso errore.

Apprezzo molto qualsiasi ulteriore guida tu possa fornire.

1 Mi Piace

EDIT: Oh, ma hai l’errore “troppe richieste”. Penso che quello che farei sarebbe digitare

docker login

e seguire le istruzioni. Sembra che una versione autenticata gratuita possa risolvere il tuo problema.

Consiglierei di prenderne una nuova e seguire Sposta un sito Discourse su un altro VPS con rsync. C’è poco tempo di inattività e se qualcosa va storto, puoi semplicemente eliminare la nuova droplet e riprovare.

Ma per ora sei a posto, quindi potresti semplicemente essere in grado di

sudo apt update
sudo apt upgrade
# o se vuoi solo aggiornare docker, questo probabilmente lo farà.
sudo apt install docker-ce
1 Mi Piace

Ciao Jay,

Ho eseguito sudo apt update e sudo apt upgrade senza incidenti. Ho quindi provato a eseguire di nuovo sudo ./launcher rebuild app e ho ottenuto l’errore:

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

Nota che è lo stesso errore di prima, tranne per il fatto che ora la versione deprecata è 24.0.2 invece di 20.10.14. Ho provato sudo apt install docker-ce ma ottengo lo stesso errore quando eseguo sudo ./launcher rebuild app. Sembra che non voglia aggiornare alla versione 24.0.7 o più recente.

Ho appena creato con successo un login Docker dal sito web di Docker. Posso accedere al sito Docker, ma quando eseguo docker login dalla riga di comando e inserisco il mio nome utente e password (che ho copiato e incollato dal mio portachiavi per evitare errori di battitura) ottengo:

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

Ci ho provato diverse volte nel caso avessi incollato la password sbagliata, tutto senza successo. C’è un login diverso che devo creare?

Apprezzo molto qualsiasi altro consiglio che tu possa fornire!

È il massimo che si può ottenere con il tuo sistema operativo. Probabilmente è abbastanza buono.

Sì. Tenterà di aggiornare solo docker. Docker ha nomi diversi in alcuni casi, quindi ho pensato che aggiornare tutto fosse una soluzione più sicura.

Quelle sono le tue credenziali docker che vuole, non le tue credenziali del sistema operativo. Quando faccio così ottengo qualcosa di simile:

USING WEB-BASED LOGIN
To sign in with credentials on the command line, use 'docker login -u <username>'

Your one-time device confirmation code is: WZYX-ABCD
Press ENTER to open your browser or submit your device code here: https://login.docker.com/activate

Lo stai eseguendo come root, o come un utente che non ha i permessi per usare docker?

Ciao Jay,

Sì, il problema era che ho eseguito docker login invece di sudo docker login poiché non stavo eseguendo come root. Ma ho inserito il mio nome utente e password Docker, non il mio nome utente e password del sistema operativo. Non sono così scarso!

Ho appena eseguito di nuovo sudo ./launcher rebuild app e non ho ricevuto errori! Mi ha chiesto di eseguirlo di nuovo, quindi ho acconsentito. Ho quindi eseguito sudo ./launcher start app e tutto è attivo e funzionante!

Grazie mille! Avevo solo bisogno di un docker login (e poi di accedere, come root).

Sei stato di un aiuto incredibile! Grazie ancora per la tua generosità e pazienza! Speriamo che questo argomento aiuti altri che incontrano lo stesso problema.

2 Mi Piace

Beh, non posso sempre indovinare cosa abbia senso per chi.
Sono contento che tu abbia risolto.
Grazie per l’aggiornamento! È la prima volta che vedo questo problema e sono contento che la soluzione che ho suggerito abbia funzionato. Mi chiedo se questo diventerà un problema più comune in futuro.

2 Mi Piace