Au 11/03/2020 à 17h00, la limite de 100 fois / 6 heures n'avait pas encore été appliquée. Annonce officielle 11/05 02:00 heure du Japon -Il semble que l'application sera terminée à 05h00.
(À partir du 03/11/2020 à 17h00)
Le haut n'est pas d'informations d'identification (utilisateur anonyme), et le bas est le résultat de la vérification avec mon compte Docker Hub personnel. Les deux étaient limités, mais jusqu'à 5000 fois en 6 heures. À propos, CircleCI [à quelques exceptions près, les utilisateurs n'ont rien à faire pour le moment](https://support.circleci.com/hc/en-us/articles/360050623311-Docker-Hub-rate-limiting- FAQ) a été annoncé. Une fois la limite de taux de téléchargement pleinement appliquée, je me demande si ce travail s'affiche jusqu'à 100 fois (pour les utilisateurs anonymes), mais j'ai l'impression de pouvoir exécuter le travail sans aucun problème.
Limite d'extraction DockerHub semble être appliquée dans l'ordre. Bien qu'il ait été officiellement annoncé qu'il sera introduit le 01/11/2020, il semble qu'il sera introduit progressivement à partir du 11/02 comme indiqué dans le document. Je n'ai pas été en mesure de confirmer que la limite de 100 fois en 6 heures a été activée au 11/03 à 17h00 sur ma main et sur CircleCI.
** Les utilisateurs de CircleCI n'ont souvent pas à y faire face immédiatement. ** ** ** Cependant, si les cas suivants s'appliquent, veuillez lire la FAQ officielle. Mieux. ** ** (Pour une raison quelconque, à partir du 11/03/2020 [page japonaise](https://support.circleci.com/hc/ja/articles/360050623311-Docker-Hub%E3%81%AE%E3%83%AC% E3% 83% BC% E3% 83% 88% E5% 88% B6% E9% 99% 90% E3% 81% AB% E9% 96% A2% E3% 81% 99% E3% 82% 8B FAQ) Est vieux, vous devriez donc vous référer à la page en anglais)
Cependant, CircleCI ne nie pas que cette restriction puisse s'appliquer aux utilisateurs à l'avenir et recommande d'extraire l'image avec les informations d'identification appropriées. Pour plus d'informations sur la configuration des informations d'identification, consultez le Guide officiel et Articles détaillés Veuillez consulter / 30a9728973b3dbca3f76).
L'explication détaillée est laissée à Explication officielle. En gros, si vous obtenez un jeton et faites une requête HTTP à une URL spécifique, il vous indiquera les informations de restriction de téléchargement actuelles.
$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token
$ curl -v -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1 | grep RateLimit
** * Remarque: la demande de curl sur la deuxième ligne est considérée comme un téléchargement d'image. Ne le fais pas aveuglément. ** **
DockerHub semble considérer la demande de méthode GET vers le chemin / v2 / * / manifestests / *
comme un seul téléchargement.
Une fois exécuté, le résultat suivant sera renvoyé.
< RateLimit-Limit: 5000;w=21600
< RateLimit-Remaining: 4999;w=21600
La limite est de 5000 fois, le nombre restant est de 4999 fois et w est de 21600s (6 heures) dans la fenêtre de temps. Celui consommé est dû à la demande elle-même demandant le nombre restant.
.circleci/config.yml
version: 2.1
workflows:
workflow:
jobs:
- build:
context:
- dockerhub-context
jobs:
build:
docker:
- image: circleci/node:latest
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
resource_class: small
steps:
- checkout
- run:
name: Check rate limits with Circle CI credentials
command: "curl -v -H \"Authorization: Bearer `curl 'https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull' | jq -r .token`\" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1 | grep RateLimit"
- run:
name: Check rate limits with my own credentials
command: "curl -v -H \"Authorization: Bearer `curl --user \"$DOCKERHUB_USERNAME:$DOCKERHUB_PASSWORD\" 'https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull' | jq -r .token`\" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1 | grep RateLimit"
Je l'ai écrit comme ça.
Comme il était difficile de définir des variables dans la commande, l'acquisition de jetons et la requête de comptage restant sont effectuées sur la même ligne.
Nous avons également créé un contexte appelé dockerhub-context
et défini les variables d'environnement DOCKERHUB_USERNAME
et DOCKERHUB_PASSWORD
. Il est préférable d'utiliser la clé API qui peut être créée à partir des paramètres de compte de Docker Hub, et non le mot de passe utilisé pour se connecter à la page Web.
Le résultat est l'image du début. Je voudrais réessayer lorsque les restrictions seront entièrement activées.
** * Bien sûr, la requête curl dans ce script est également considérée comme un téléchargement (deux fois au total). C'est probablement bien dans CircleCI, mais ne dérangez pas trop. ** **
Même s'il s'agit d'une requête à https: //registry-1.docker.io/v2 / * / manifestests / *
, il semble que le nombre de téléchargements ne soit pas consommé s'il s'agit de la méthode HEAD.
Cela signifie que RateLimit-Limit
est une information d'en-tête, vous pouvez donc vous renseigner avec curl --head
! ?? J'ai pensé, mais cela n'a pas fonctionné.
$ curl --head -H "Authorization: Bearer `curl 'https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull' | jq -r .token`" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1
HTTP/1.1 200 OK
Content-Length: 2782
Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjws
Docker-Content-Digest: sha256:767a3815c34823b355bed31760d5fa3daca0aec2ce15b217c9cd83229e0e2020
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:767a3815c34823b355bed31760d5fa3daca0aec2ce15b217c9cd83229e0e2020"
Date: Tue, 03 Nov 2020 08:55:59 GMT