Create Elastic Container Registry (ECR) and Upload Images
On this Page
Create Elastic Container Registry (ECR) and Upload Images¶
Amazon Elastic Container Registry (ECR) is a fully managed container registry offering high-performance hosting, so you can reliably deploy application images and artifacts anywhere.
Note
Ensure AWS Credentials are properly configured before running any aws commands. This ensures that all aws commands will work as expected. For further information, see AWS Credentials Configuration Documentation.
Create Elastic Container Registry¶
Use the following to create an ECR repository:
aws ecr create-repository --repository-name xxxxxxxxxxxx
{
"repository": {
"repositoryArn": "arn:aws:ecr:us-west-2:xxxxxxxxxxxx:repository/dl1_batch_training",
"registryId": "xxxxxxxxxxxx",
"repositoryName": "dl1_batch_training",
"repositoryUri": "xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/dl1_batch_training",
"createdAt": 1661376423.0,
"imageTagMutability": "MUTABLE",
"imageScanningConfiguration": {
"scanOnPush": false
},
"encryptionConfiguration": {
"encryptionType": "AES256"
}
}
}
Build and Push Image to ECR¶
Create a
config.properties
file to manage image configuration:registry=xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com region=us-west-2 image_name=xxxxxxxxxxxx image_tag=v1
Field
Description
registry
Update xxxx to match your AWS Account Number
image_name
Update xxxx to the name of your image
Create a
build.sh
file to build and tag an image based on the properties file:#!/bin/bash source ./config.properties echo "Building base container ..." docker build -t ${registry}/${image_name}:${image_tag} -f ./Dockerfile .
Run
build.sh
to build and tag the Docker image:./build.sh
Create a
push.sh
file to log into the generated ECR and push the built image to the registry based on the properties file:#!/bin/bash source ./config.properties echo "Logging into ECR" aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin ${registry} echo "Pushing to ECR" docker push ${registry}/${image_name}:${image_tag} echo "Done..."
Run
push.sh
to log into the ECR and push the built image:./push.sh