使用 AWS 精选的 Docker 映像创建 CodeBuild 项目,PrivilegedMode=TRUE



我用以下命令确认aws/codebuild/java:openjdk-8是精选的CodeBuild图像之一。

$ aws codebuild list-curated-environment-images | grep -A 1 openjdk-8
"name": "aws/codebuild/java:openjdk-8", 
"description": "AWS CodeBuild - Java 8"

尽管aws/codebuild/java:openjdk-8是一个特选映像,但当我尝试使用该映像和 PrivilegedMode=true 参数创建构建项目时,我收到一个没有意义的 4XX 错误:"特权模式可以仅针对具有自定义或 AWS CodeBuild Docker 精选映像的项目进行设置。

9    [main] INFO  org.janusgraph.codepipelines.AwsCodePipelinesCi  -
{
    Name: j1pass-bdb-project,
    Source: {Type: CODEPIPELINE,},
    Artifacts: {Type: CODEPIPELINE, Name: null-artifacts,Packaging: NONE},
    Environment: {Type: LINUX_CONTAINER,
    Image: aws/codebuild/java:openjdk-8,
    ComputeType: BUILD_GENERAL1_LARGE,
    EnvironmentVariables: [{Name: MODULE,Value: janusgraph-berkeleyje}],
    PrivilegedMode: true},
    ServiceRole: arn:aws:iam::############:role/cbjanus,
    TimeoutInMinutes: 480
}
1454 [main] ERROR org.janusgraph.codepipelines.AwsCodePipelinesCi  -
PrivilegedMode can only be set for projects with custom or AWS CodeBuild Docker
curated images. (Service: AWSCodeBuild; Status Code: 400;
Error Code: InvalidInputException; Request ID: 89ab67a0-4d00-11e7-8da7-bdeb9326cb3c)
com.amazonaws.services.codebuild.model.InvalidInputException: PrivilegedMode can
only be set for projects with custom or AWS CodeBuild Docker curated images.
(Service: AWSCodeBuild; Status Code: 400;
Error Code: InvalidInputException; Request ID: 89ab67a0-4d00-11e7-8da7-bdeb9326cb3c)

AWS CodeBuild "Docker" 精选映像是以"aws/codebuild/docker"开头的映像。CodeBuild 精选图像的完整列表可以在这里找到:http://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref.html。

您只能为"自定义"映像设置最近引入的此标志。这些是您可能在私有 Amazon ECR 注册表或公有 DockerHub 注册表中拥有的映像。有关如何在此处启用标志的示例:http://docs.aws.amazon.com/codebuild/latest/userguide/sample-docker-custom-image.html。

因此,对于您的示例,您会收到此错误,因为尽管您使用的 openjdk-8 映像是特选映像,但它不是"docker"特选映像。

最新更新