Skip to main content
← Back to workflows

How to Use Amazon ECR "Login" Action for GitHub Actions

aws-actions-amazon-ecr-login -
GitHub Action
CICUBE ANALYTICS INSIGHTS
Engineering Velocity: 25% Team Time Lost to CI Issues
View Platform →
3.5h
Time Saved/Dev/Week
40%
Faster Releases
Click for next insight
Usage
name: 'Usage of amazon-ecr-login GitHub Action'
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::123456789012:role/my-github-actions-role
aws-region: aws-region-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

amazon-ecr-login logo

Amazon ECR Login

Logs into Amazon ECR with the local Docker client.


What is Amazon ECR "Login" Action?

The Amazon ECR “Login” action logs in the local Docker client to one or more Amazon ECR Private registries or an Amazon ECR Public registry. Here’s how to configure it in your GitHub Actions workflow.

Login to Amazon ECR Private, then build and push a Docker image:

To log in to Amazon ECR Private, build a Docker image, tag it, and push it to Amazon ECR, follow this example configuration:

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

- name: Build, tag, and push docker image to Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: my-ecr-repo
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG .
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG

Login to Amazon ECR Public, then build and push a Docker image:

To log in to Amazon ECR Public, build a Docker image, tag it, and push it to Amazon ECR, follow this example configuration:

- name: Login to Amazon ECR Public
id: login-ecr-public
uses: aws-actions/amazon-ecr-login@v2
with:
registry-type: public

- name: Build, tag, and push docker image to Amazon ECR Public
env:
REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
REGISTRY_ALIAS: my-ecr-public-registry-alias
REPOSITORY: my-ecr-public-repo
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $REGISTRY/$REGISTRY_ALIAS/$REPOSITORY:$IMAGE_TAG .
docker push $REGISTRY/$REGISTRY_ALIAS/$REPOSITORY:$IMAGE_TAG

Login to Amazon ECR Private, then package and push a Helm chart:

To log in to Amazon ECR Private, build a Docker image, tag it, and push it to helm chart to Amazon ECR, follow this example configuration:

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

- name: Package and push helm chart to Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: my-ecr-repo
run: |
helm package $REPOSITORY
helm push $REPOSITORY-0.1.0.tgz oci://$REGISTRY

Login to Amazon ECR Private, Build, and Push a Docker Image

To log in to Amazon ECR Private, build a Docker image, tag it, and push it to Amazon ECR, follow this example configuration:

- name: Login to Amazon ECR Public
id: login-ecr-public
uses: aws-actions/amazon-ecr-login@v2
with:
registry-type: public

- name: Package and push helm chart to Amazon ECR Public
env:
REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
REGISTRY_ALIAS: my-ecr-public-registry-alias
REPOSITORY: my-ecr-public-repo
run: |
helm package $REPOSITORY
helm push $REPOSITORY-0.1.0.tgz oci://$REGISTRY/$REGISTRY_ALIAS

How to Login to Amazon ECR and Push Docker Images or Helm Charts

To log in to Amazon ECR, build a Docker image, tag it, and push it to Amazon ECR, follow this example configuration:

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::123456789012:role/my-github-actions-role
aws-region: aws-region-1

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
with:
registries: "123456789012,998877665544"