Docker Hub est un compte gratuit et un utilisateur non authentifié avec un nombre limité de pulls à partir de novembre (https://www.docker.com/pricing/resource-consumption-updates). Si vous travaillez sans authentification sur CircleCI, des restrictions basées sur l'adresse IP seront appliquées, et comme le nombre d'adresses IP CircleCI n'est pas grand par rapport aux utilisateurs, il y a des inquiétudes quant à l'impact.
L'équipe CircleCI semble parler à Docker, il ne sera donc peut-être pas nécessaire que les utilisateurs répondent à l'avenir. Cependant, si l'environnement CI / CD s'arrête, l'impact sera grand, alors maintenons la solution de contournement.
Si vous mordez l'authentification utilisateur de Docker Hub pour le moment, cela ne sera pas jugé par l'adresse IP, vous pouvez donc utiliser jusqu'à 200 pulls / 6h
même avec un compte gratuit. Si cela devient plus que cela, vous devez charger Docker Hub, mais de toute façon, vous devez authentifier l'utilisateur sur CircleCI, donc le même travail se produira.
Authentifiez l'utilisateur Docker Hub sur CircleCI en suivant les étapes ci-dessous.
Cliquez ici pour consulter l'intégralité du fichier config.yaml
.
La procédure d'enregistrement dans Context sortira bientôt, je vais donc l'omettre.
staging_steps: &staging_steps
<<: *only_master
context:
- serverless_staging
- docker-hub-credencials
production_steps: &production_steps
<<: *only_master
context:
- serverless_production
- docker-hub-credencials
Docker executor et les informations d'authentification définies à l'endroit où Docker est extrait dans Machine executor seront ajoutées. Vous trouverez ci-dessous un exemple d'exécuteur Docker.
references:
docker_hub_authentication: &docker_hub_authentication
auth:
username: $DOCKERHUB_USER
password: $DOCKERHUB_PASSWORD
Ce qui suit est un exemple d'application aux parties résumées dans «exécuteurs».
executors:
python3_6_1:
working_directory: ~/repo
docker:
- image: circleci/python:3.6.1
<<: *docker_hub_authentication
test:
working_directory: ~/repo
docker:
- image: circleci/python:3.6.1
<<: *docker_hub_authentication
- image: bluszcz/bflocalstack-dynamodb-s3
<<: *docker_hub_authentication
- image: alismedia/dynamodb-local
<<: *docker_hub_authentication
environment:
MAX_HEAP_SIZE: 4096m
HEAP_NEWSIZE: 3072m
#Aucune information d'identification requise car il ne s'agit pas d'un Docker Hub
- image: docker.elastic.co/elasticsearch/elasticsearch:6.2.0
environment:
discovery.type: single-node
Si vous pouvez définir les paramètres ci-dessus et créer les mêmes qu'avant la modification, vous avez terminé.
Si vous ajoutez accidentellement vos informations d'identification à un emplacement qui n'est pas Docker Hub, vous obtiendrez l'erreur suivante:
Error response from daemon: Get https://docker.elastic.co/v2/elasticsearch/elasticsearch/manifests/6.2.0: unauthorized: authentication required
Ce qui suit est une erreur mystérieuse. C'est la première fois que je le vois.
Allocating a remote Docker Engine
Requesting version: 18.09.3
Got error while creating host: failed to create host: rpc error: code = Unknown desc = failed to create VM: Put "https://vm-service.infra.circleci.com/tasks/5f7ffcbaa7b0aa6a8ec29c79-0-build%2F59C7C9D1": EOF
We had an unexpected error preparing a VM for this build, potentially due to our infrastructure or cloud provider. Please retry the build in a few minutes
Réexécutez comme indiqué et il a été résolu.
Recommended Posts