J’héberge Discourse moi-même sur une instance DigitalOcean depuis plusieurs années et j’ai mis à jour Discourse de nombreuses fois sans problème, que ce soit via la page d’administration ou en me connectant en SSH et en utilisant la ligne de commande. C’est la première fois que je rencontre un problème. Aujourd’hui (le 8 février 2025), j’ai mis à jour le conteneur Docker via la page d’administration sans problème. Ensuite, j’ai commencé à mettre à jour Discourse, et cela a échoué. Je me suis connecté en SSH et j’ai exécuté :
sudo ./launcher rebuild app
et j’ai obtenu cette erreur :
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
(Je n’ai plus accès aux messages d’erreur de la page de mise à jour d’administration car le serveur Discourse est hors service.)
Quelqu’un sait pourquoi cela se produit et ce que je dois faire ?
Y a-t-il une page web que tu peux recommander avec des instructions sur la façon de mettre à jour Docker ?
L’exécution de lsb_release -a donne :
Aucun module LSB disponible.
ID du distributeur : Ubuntu
Description : Ubuntu 20.04.4 LTS
Release : 20.04
Codename : focal
(J’ai repoussé la mise à jour de Linux, car je n’ai jamais effectué de mise à niveau de système d’exploitation sur une instance DigitalOcean, mais je sais que je devrai me lancer bientôt.)
J’ai consulté le site web que tu as envoyé concernant l’utilisation et les limites de Docker avant de poster ici, mais je n’y comprends rien. Dois-je payer pour Docker juste pour mettre à jour Discourse ?
J’ai essayé de redémarrer en exécutant ./launcher start app mais j’ai obtenu un message d’erreur presque identique à celui que j’ai obtenu en exécutant ./launcher rebuild app.
Cela fait plus d’une heure, alors je viens d’essayer de relancer ./launcher rebuild app, mais j’ai obtenu la même erreur.
J’apprécie grandement tout autre conseil que tu pourras me donner.
EDIT : Oh, mais vous avez l’erreur « trop de requêtes ». Je pense que ce que je ferais, c’est taper
docker login
et suivre les instructions. Il semble qu’une version authentifiée gratuite pourrait résoudre votre problème.
Je recommanderais d’en obtenir une nouvelle et de suivre Déplacer un site Discourse vers un autre VPS avec rsync. Il y a peu de temps d’arrêt et si quelque chose tourne mal, vous pouvez simplement supprimer la nouvelle instance et réessayer.
Mais vous allez bien pour le moment, donc vous pourriez simplement être en mesure de
sudo apt update
sudo apt upgrade
# ou si vous voulez juste mettre à jour docker, cela devrait probablement suffire.
sudo apt install docker-ce
J’ai exécuté sudo apt update et sudo apt upgrade sans incident. J’ai ensuite essayé d’exécuter sudo ./launcher rebuild app à nouveau et j’ai obtenu l’erreur :
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
Notez qu’il s’agit de la même erreur qu’auparavant, sauf que maintenant la version obsolète est 24.0.2 au lieu de 20.10.14. J’ai essayé sudo apt install docker-ce mais j’obtiens la même erreur en exécutant sudo ./launcher rebuild app. Il ne semble pas vouloir passer à la version 24.0.7 ou plus récente.
Je viens de créer avec succès une connexion Docker depuis le site Web de Docker. Je peux me connecter au site Docker, mais lorsque j’exécute docker login depuis la ligne de commande et que j’entre mon nom d’utilisateur et mon mot de passe (que j’ai copiés et collés depuis mon trousseau pour éviter les fautes de frappe), j’obtiens :
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
J’ai essayé plusieurs fois au cas où j’aurais mal collé le mot de passe, sans succès. Y a-t-il une connexion différente que je dois créer ?
J’apprécie grandement tout autre conseil que vous pourrez me donner !
C’est aussi bon que possible avec votre système d’exploitation. C’est probablement suffisant.
Ouais. Il essaiera de mettre à niveau uniquement docker. Docker porte des noms différents dans certains cas, j’ai donc pensé qu’une mise à niveau de tout était une solution plus sûre.
Ce sont vos identifiants docker qu’il demande, pas vos identifiants système. Quand je fais ça, j’obtiens quelque chose comme ceci :
USING WEB-BASED LOGIN
Pour vous connecter avec des identifiants sur la ligne de commande, utilisez 'docker login -u <username>'
Votre code de confirmation d'appareil unique est : WZYX-ABCD
Appuyez sur ENTRÉE pour ouvrir votre navigateur ou soumettez votre code d'appareil ici : https://login.docker.com/activate
Exécutez-vous ceci en tant que root, ou en tant qu’utilisateur qui n’a pas la permission d’utiliser docker ?
Oui, le problème était que j’avais exécuté docker login au lieu de sudo docker login car je ne fonctionnais pas en tant que root. Mais j’ai bien entré mon nom d’utilisateur et mon mot de passe Docker, pas mon nom d’utilisateur et mon mot de passe d’OS. Je ne suis pas à ce point mauvais !
J’ai relancé sudo ./launcher rebuild app et je n’ai pas eu d’erreurs ! Il m’a demandé de le relancer, alors je me suis exécuté. J’ai ensuite lancé sudo ./launcher start app et tout est en cours d’exécution !
Merci beaucoup ! J’avais juste besoin d’un docker login (et ensuite de me connecter, en tant que root).
Tu as été d’une aide formidable ! Merci encore pour ta générosité et ta patience ! J’espère que ce sujet aidera d’autres personnes rencontrant le même problème.
Eh bien, je ne peux pas toujours deviner ce qui a du sens pour qui.
Content que vous ayez trouvé.
Merci pour la mise à jour ! C’est la première fois que je vois ce problème, et je suis content que ma solution suggérée ait fonctionné. Je me demande si cela va devenir un problème plus courant à l’avenir.