AWS CloudFormation CodeBuild:我可以使用 ECR 映像作为环境映像吗

如何解决AWS CloudFormation CodeBuild:我可以使用 ECR 映像作为环境映像吗

我在尝试使用来自 ECR 的自定义图像时创建了以下脚本:

  Adminrole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: !Join
                  - "."
                  - - !Ref "AWS::StackName"
                    - !Ref "AWS::Region"
                    - "codebuild"
      Path: "/"
      AssumeRolePolicyDocument:
        Statement:
        - Action: ['sts:AssumeRole']
          Effect: Allow
          Principal:
            Service: [codebuild.amazonaws.com]
        Version: '2012-10-17'
      Policies:
        - PolicyName: "root"
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
               - Effect: "Allow"
                 Action: "*"
                 Resource: "*"

  ProjectTerrafom:
    Type: AWS::CodeBuild::Project
    Properties:
      Name: !Join
              - "_"
              - - !Ref "AWS::StackName"
                - !Ref "AWS::Region"
                - "ProjectTerrafom"
      Description: terraform deployment
      ServiceRole: !Ref Adminrole
      Artifacts:
        Type: no_artifacts
      Environment:
        Type: LINUX_CONTAINER
        ComputeType: BUILD_GENERAL1_SMALL
        Image: 111111.cer.ecr.eu-center-1.amazonaws.com/my_terraform
      Source:
        Location: !Ref "FullPathRepoNameterraform"
        Type: GITHUB_ENTERPRISE
      TimeoutInMinutes: 10
      Tags:
        - Key: Project
          Value: "Run terraform From CodeBuild"

当我运行 CodeBuild 时,出现以下错误

BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE: Unable to pull customer's container image.
CannotPullContainerError: Error response from daemon: pull access denied for
111111.cer.ecr.eu-center-1.amazonaws.com/my_terraform,repository does
 not exist or may `enter code here`require 'docker login': denied: User: CodeBuild

这是权限问题还是我们不允许将 ECR 映像用于 CodeBuild?

解决方法

您可以在代码构建中使用 ECR 图像,但您需要根据该错误进行验证。所以我建议你交叉检查你的 docker 凭据,确认登录然后交叉检查图像 URL

,

我通过添加以下行解决了这个问题:

(define-macro (overload name-spec . body)
   (let ((name (car name-spec))
         (args (cdr name-spec)))
      `(define,name (let ((,name,name))
                       (lambda,args,@body)))))

(overload (display x . rest)
   (let ((port (if (null? rest)
                   (current-output-port)
                   (car rest))))
     (if (number? x)
         (display (string-append "#<" (number->string x 16) ">") port)
         (display x port))))

(display 10)
;; ==> #<a>
(display "20")
;; ==>  20

整个部分如下所示:

ImagePullCredentialsType: SERVICE_ROLE

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?