【问题标题】:ECS images are failing in gitlab-runner-autoscaling?ECS 图像在 gitlab-runner-autoscaling 中失败?
【发布时间】:2018-04-23 19:47:28
【问题描述】:

我是 gitlab-runner 的新手,我尝试设置 gitlab-runner-autoscaling 但我无法在构建中下载 ecr 图像。当我尝试 ssh 到 docker-machine 时,我能够下载图像,我什至尝试 ssh 到 VM 并尝试以 root 和 ubuntu 用户(ubuntu 16.04 AMI)的身份拉取 ecr 图像,它只会在运行构建时失败。

请告诉我如何排除故障。 1. 如何找到 gitlab-runner 用于拉取 ecr 图像的命令/ 2. 如何找到运行docker命令的用户。

Runner config:
[[runners]]
  name = "registry-test4"
  limit = 1
  url = "http://gitlab.xxxxxxxx.com/"
  token = "xxxxxxxxxxxxxxx"
  executor = "docker+machine"
  [runners.docker]
    tls_verify = false
    image = "ruby:2.1"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]
  [runners.machine]
    IdleCount = 1
    MachineDriver = "amazonec2"
    MachineName = "gitlab-runner-ci-%s"
    MachineOptions = ["amazonec2-iam-instance-profile=xxxxxxxxxxx", "amazonec2-ssh-user=ubuntu", "amazonec2-region=us-east-1", "amazonec2-instance-type=t2.large", "amazonec2-ami=ami-xxxxx", "amazonec2-vpc-id=vpc-xxxxx", "amazonec2-subnet-id=subnet-xxxxx", "amazonec2-zone=a", "amazonec2-root-size=32", "amazonec2-keypair-name=spot", "amazonec2-ssh-keypath=/root/.ssh/spot", "amazonec2-userdata=/etc/gitlab-runner/bootstrap.sh", "amazonec2-request-spot-instance=true", "amazonec2-security-group=docker_machine_git_as_prod", "amazonec2-security-group=consul-agent-prod", "amazonec2-private-address-only", "amazonec2-spot-price=x.xx"]
    OffPeakPeriods = ["* * 5-11 * * mon-fri *", "* * * * * sat,sun *"]
    OffPeakTimezone = ""
    OffPeakIdleCount = 1
    OffPeakIdleTime = 1200

错误:

Running with gitlab-runner 10.2.0 (0a75cdd1)
  on registry-test4 (31b91ac3)
Using Docker executor with image xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/dev/sbt:latest ...
Using docker image sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfor predefined container...
Pulling docker image xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/dev/sbt:latest ...
ERROR: Preparation failed: Error response from daemon: Get https://xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/v2/dev/sbt/manifests/latest: no basic auth credentials
Will be retried in 3s ...

.gitlab-ci.yml

---
main:
  image: xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/dev/sbt:latest
  script: sbt +runCI

【问题讨论】:

    标签: docker gitlab gitlab-ci amazon-ecs


    【解决方案1】:

    通过安装 ecr 二进制文件解决了这个问题

    https://github.com/awslabs/amazon-ecr-credential-helper

    在 gitlab-runner 服务器上,在 /root/.docker/config.json 中传递这些参数。 (早期的 ecr 仅安装在正在配置的 VM docker-machine 上。

    {
        "credsStore": "ecr-login"
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 2018-12-17
      • 2017-05-07
      • 2021-01-22
      • 2018-08-02
      • 2020-11-12
      相关资源
      最近更新 更多