Java 使用具有PrivilegedMode=TRUE的AWS策划的Docker映像创建代码构建项目
我用以下命令确认了Java 使用具有PrivilegedMode=TRUE的AWS策划的Docker映像创建代码构建项目,java,amazon-web-services,aws-codebuild,Java,Amazon Web Services,Aws Codebuild,我用以下命令确认了aws/codebuild/java:openjdk-8是策划的代码构建映像之一 $ 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是一个精心策划的映像,但当我尝试使用
aws/codebuild/java:openjdk-8
是策划的代码构建映像之一
$ 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错误:“PrivilegedMode可以
仅适用于具有自定义或AWS CodeBuild Docker策划的图像的项目。”
AWS CodeBuild“Docker”策划的图像是以“AWS/CodeBuild/Docker”开头的图像。CodeBuild策展图像的完整列表可在此处找到:
您只能为“自定义”图像设置最近引入的此标志。这些是您可能在私有Amazon ECR注册表或公共DockerHub注册表中拥有的图像。有关如何在此处启用标志的示例:
因此,对于您的示例,您会遇到此错误,因为尽管您使用的openjdk-8图像是策划的图像,但它不是“docker”策划的图像。基本上,我必须将AWS图像发布到docker Hub或ECR中我自己的存储库中,才能在特权模式下使用它们,因为Java 8不包括在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)