You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab共享Runner中ECR登录失败,ECS部署受阻

GitLab CI/CD 共享Runner登录ECR失败排查

问题场景

通过任务定义部署ECS,使用ECR存储Docker镜像,在GitLab CI/CD共享Runner中执行ECR登录时失败。

当前CI/CD配置

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

错误详情

Docker daemon返回认证错误:

Error response from daemon: Get https://.dkr.ecr..amazonaws.com/v2/: no basic auth credentials

说明Docker未获取到ECR仓库的基础认证凭据,导致登录失败。

解决办法

  • 替换ECR登录命令:弃用旧版aws ecr get-login命令,改用更可靠的密码传递方式,将before_script中的登录行替换为:

    aws ecr get-login-password --region "${AWS_DEFAULT_REGION}" | docker login --username AWS --password-stdin "${REPOSITORY_URL%/*}"
    

    该命令直接将ECR登录密码传递给Docker,避免shell解析或环境变量导致的凭据丢失问题。

  • 验证AWS变量配置:检查GitLab项目CI/CD变量中AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION是否正确设置,若分支为非保护分支,确保变量未标记为Protected;同时确认IAM用户拥有ecr:GetAuthorizationToken及镜像推送相关权限。

  • 升级AWS CLI:原配置安装的是默认版本AWS CLI,建议升级到最新版,替换pip install awscli为:

    pip install --upgrade awscli
    

    旧版CLI存在ECR认证兼容性问题,升级后可解决多数相关故障。

  • 检查Docker服务状态:在登录命令前添加docker info,确认docker:dind服务已正常启动,避免因Docker daemon未就绪导致的登录失败。

内容的提问来源于stack exchange,提问作者R.Vijayakumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 00:11:04