Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use AWS CDK to create CodeBuild Project for building Docker Images

I want to define a CodeBuild project in source code using the AWS CDK. The CodeBuild project needs to be able to build and then push docker images.

When creating a new CodeBuild Project in the AWS Console there's an option:

Privileged Enable this flag if you want to build Docker images or want your builds to get elevated privileges.

enter image description here

I don't see an equivalent api for turning on the Privileged flag in the API Docs.

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"
    })
});

And if I try to run my build without setting Privileged to true, I'll get the standard error:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

How to I use the AWS CDK to create a CodeBuild Project that has "Privileged" to build Docker images?

like image 241
Philip Pittle Avatar asked Mar 02 '23 23:03

Philip Pittle


1 Answers

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

In general, you can find all other (build) environment settings here: https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-codebuild.BuildEnvironment.html#privileged

like image 188
mchlfchr Avatar answered May 08 '23 11:05

mchlfchr