web-dev-qa-db-fra.com

ACCESSE DE TRIMÉE REDÉNÉES POUR Amazon ECR, le référentiel n'existe pas ou peut nécessiter "Docker Login"

  1. J'ai une image dans un référentiel Amazon ECR appelé atelier
  2. J'ai un dockerfile pour tirer cette image
  3. Codebuild devrait construire la nouvelle image de Dockerfile

Problème:

tirez l'accès refusé pour xxxxxxxxxxx.dkr.ecr.eu-entral-1.amazonaws.com/workshop, référentiel n'existe pas ou peut nécessiter "Docker Login"

Dans mon fichier BuildSpec, j'ai essayé de me connecter avec Docker, mais rien ne change.

 phases:
  pre_build:
  commands:
   - echo Logging in to Amazon ECR...
   - $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION)
   - aws ecr get-login-password --region eu-central-1 | docker login --username AWS --password-stdin 
     xxxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com
   - CODEBUILD_RESOLVED_SOURCE_VERSION="${CODEBUILD_RESOLVED_SOURCE_VERSION:-$IMAGE_TAG}"
   - IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)

DockerFile ressemble à ceci:

FROM xxxxxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com/workshop:latest

CMD ["echo", "Hallo!"]

RUN code-server

Qu'est-ce qui peut causer le problème?

8
vasil001

Essayez de mettre à jour votre AWS-CLI et utilisez la dernière version, car get-login est obsolète.

La nouvelle commande est comme ceci:

aws ecr get-login-password \
    --region <region> \
| docker login \
    --username AWS \
    --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com

Les références:

1
Daniel Hornik