代码之家  ›  专栏  ›  技术社区  ›  martin_crd

AWS ElasticBeanstalk从Gitlab注册表中提取Docker映像

  •  1
  • martin_crd  · 技术社区  · 7 年前

    我很难将Docker映像从私有Gitlab注册表拉到AWS多容器ElasticBeanstalk环境。

    我补充说 .dockercfg 与我的集群位于同一区域的S3,还允许aws-elasticbeanstalk-ec2-role IAM role从S3获取数据。

    ElasticBeanstalk始终返回错误 CannotPullContainerError:API错误(500)

    我的 .dockercfg 格式如下:

    {
        "https://registry.gitlab.com" : {
          "auth" : “my gitlab deploy token“,
          "email" : “my gitlab token name“
        }
    }
    

    在…内 dockrun.aws.json

      "authentication": {
        "bucket": "name of my bucket",
        "key": ".dockercfg"
      },
    

    当我尝试通过登录时 docker login -u gitlabtoken-name -p token 它工作得很好。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Enoah Netzach    7 年前

    gitlab部署令牌不是身份验证密钥。

    要生成正确的身份验证密钥,我通常执行以下操作:

    docker run -ti docker:dind sh -c "docker login -u name -p deploy-token registry.gitlab.com && cat /root/.docker/config.json"
    

    它会打印出如下内容:

    {
      "auths": {
        "registry.gitlab.com": {
          "auth": "your-auth-key"
        }
      },
      "HttpHeaders": {
        "User-Agent": "Docker-Client/18.09.0 (linux)"
      }
    }
    

    然后,根据elasticbeanstalk文档 "Using Images From a Private Repository " ,你应该拿你需要的东西。

    希望这对你有帮助!