Search code examples
amazon-ecsaws-batch

CannotPullContainerError: AWS Batch Job


I am trying to run a job in AWS Batch. This is my first attempt. I have a python script which reads files from a S3 bucket, processes them and makes tables in RDS Postgres.

I have made a docker image with my script, pandas, boto3, SQLAlchemy and pushed it to hub.docker.com

When I try to run a job in AWS Batch it get the below error -

CannotPullContainerError: Error response from daemon: pull access denied for *dockerimagename*, repository does not exist or may require 'docker login'

What is a possible solution? I am stuck with this for a long time.


Solution

  • I had this issue when I was only putting the image name in the Container Image field of the Job Description. So I was putting:

    *dockerimagename*

    when I should have been putting:

    0123456789.dkr.ecr.us-east-1.amazonaws.com/*dockerimagename*

    You can get the first part of that by going to your ECR > Repositories in the AWS console and copying the link from there (there's even a button to do it).