使用 AWS CDK 创建用于构建 Docker 镜像的 CodeBuild 项目

Phi*_*tle 3 c# amazon-web-services aws-codebuild aws-cdk

我想使用 AWS CDK 在源代码中定义一个 CodeBuild 项目。CodeBuild 项目需要能够构建然后推送 docker 镜像。

在 AWS 控制台中创建新的 CodeBuild 项目时,有一个选项:

特权 如果您想构建 Docker 映像或希望您的构建获得提升的权限,请启用此标志。

在此处输入图片说明

我在API Docs 中没有看到用于打开Privileged标志的等效API

var codeBuildProject = new Project(this, "Example_Build", new ProjectProps
{
    ProjectName = "ExampleBuildFromCDK",
    // How to add Privileged?
    BuildSpec = BuildSpec.FromSourceFilename("example/buildspec.yml"),
    Source = Source.CodeCommit(new CodeCommitSourceProps
    {
        Repository = Repository.FromRepositoryArn(this, "CodeCommit", CodeRepositoryArn),
        BranchOrRef = "refs/heads/example/added-docker-images"
    })
});
Run Code Online (Sandbox Code Playgroud)

如果我尝试在不将Privileged设置为 true 的情况下运行我的构建,我将收到标准错误:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Run Code Online (Sandbox Code Playgroud)

如何使用 AWS CDK 创建具有“特权”来构建 Docker 映像的 CodeBuild 项目?

mch*_*chr 5

    new Project(this, "coolBuildProject", {
      // ... setting up your codeBuildProject
      environment: {
        // this is the essential piece you're looking for
        privileged: true,
      },
    });
Run Code Online (Sandbox Code Playgroud)

一般来说,您可以在此处找到所有其他(构建)环境设置:https : //docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-codebuild.BuildEnvironment.html#privileged