在 gitlab runner 中 ECR 登录失败

问题描述 投票:0回答:2

我正在尝试使用任务定义来部署 ECS,并且我正在使用 ECR 将我的 docker 映像存储在 was 中。当我尝试使用共享运行程序登录 GitLab CI/CD 中的 ECR 时。我遇到错误。

image: docker:19.03.11

services:
  - docker:dind

variables:
  REPOSITORY_URL: <REPOSITORY_URL>
  TASK_DEFINITION_NAME: <Task_Definition>
  CLUSTER_NAME: <CLUSTER_NAME>
  SERVICE_NAME: <SERVICE_NAME>

before_script:
  - apk add --no-cache curl jq python py-pip
  - pip install awscli
  - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
  - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
  - aws configure set region $AWS_DEFAULT_REGION
  - $(aws ecr get-login --no-include-email --region "${AWS_DEFAULT_REGION}")
  - IMAGE_TAG="$(echo $CI_COMMIT_SHA | head -c 8)"

stages:
  - build
  - deploy

build:
  stage: build
  script:
    - echo "Building image..."
    - docker build -t $REPOSITORY_URL:latest .
    - echo "Tagging image..."
    - docker tag $REPOSITORY_URL:latest $REPOSITORY_URL:$IMAGE_TAG
    - echo "Pushing image..."
    - docker push $REPOSITORY_URL:latest
    - docker push $REPOSITORY_URL:$IMAGE_TAG

错误详情:

gitlab-ci gitlab-ci-runner amazon-ecr
2个回答
0
投票

您可以采用两种方法来访问私有注册表。两者都需要使用适当的身份验证信息设置 CI/CD 变量 DOCKER_AUTH_CONFIG。

每个作业:要配置一个作业来访问私有注册表,请将 DOCKER_AUTH_CONFIG 添加为 CI/CD 变量。 每个运行程序:要配置运行程序,使其所有作业都可以访问私有注册表,请将 DOCKER_AUTH_CONFIG 添加为运行程序配置中的环境变量。

https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#access-an-image-from-a-private-container-registry


0
投票

我在您的配置中发现以下问题:

  • docker login
    不见了
  • 没有
    DOCKER_HOST
    docker:dind 将无法工作

请尝试按照本教程进行操作 - 链接,有关上述教程的 YouTube 视频位于此处

© www.soinside.com 2019 - 2024. All rights reserved.