Tim_B
Tim_B

Reputation: 129

error with docker build stage of CodeBuild build

I am getting the following error from the BUILD stage of my CodeBuild build process:

"Error while executing command: docker build -t ..." Reason: exit status 1

I have a code build service role set up with permissions for ecr, the aws ecr login stage has succeeded, and my buildspec.yml is really simple - pretty much just the standard template. Runtime is the Amazon-managed ubuntu image, standard.

Is there any reason why the Docker build could be failing and anything anyone would suggest to troubleshoot?

Thank you

Full buildspec.yml file:

version: 0.2

phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - $(aws ecr get-login --no-include-email --region eu-west-1)
  build:
    commands:
      - echo Building the Docker image...          
      - docker build -t maxmind:latest .
      - docker tag maxmind:latest 381475286792.dkr.ecr.eu-west-1.amazonaws.com/maxmind:latest      
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker image...
      - docker push 381475286792.dkr.ecr.eu-west-1.amazonaws.com/maxmind:latest

Full error message (BUILD stage):

COMMAND_EXECUTION_ERROR: Error while executing command docker build -t maxmind:latest .. Reason: exit status 1

Full error message (POST_BUILD stage):

COMMAND EXECUTION_ERROR: Error while executing command: docker push 381475286792.dkr.ecr.eu-west-1.amazonaws.com/maxmind:latest. Reason: exit status 1

Full error message (logstream):

[Container] 2020/05/20 09:28:54 Running command docker build -t maxmind:latest .
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

[Container] 2020/05/20 09:28:54 Command did not exit successfully docker build -t maxmind:latest . exit status 1
[Container] 2020/05/20 09:28:54 Phase complete: BUILD State: FAILED

Things I have tried

Attached AmazonEC2ContainerRegistryPowerUser policy to the codebuild-service-role created by my build process

Upvotes: 9

Views: 20326

Answers (2)

Niv Apo
Niv Apo

Reputation: 1083

Just want to share this in case anyone still has this issue.

This issue can be caused of 3 reasons:

  1. Not having PrivilegedMode enabled id the CodeBuild project
  2. Not having enough permissions for the IAM role
  3. An error with your dockerfile build

In my case it was the 3rd reason.

I activated s3 logs which helped me see better error messages as it turned out to be that I was missing a folder in my project which my build dockerfile tried to COPY.

But it can be any error, like running an npm command that doesn't exists.

Upvotes: 0

Marcin
Marcin

Reputation: 238131

Based on the comments.

There were two issues. The first one was not using PrivilegedMode mode in the CodeBuild project. The mode is required when building a docker image inside a docker container.

The second issue was missing permission iam:DeletePolicyVersion.

Enabling the mode and adding the missing permissions, solved the issue.

Upvotes: 13

Related Questions