Amazon Elastic Container Registry (ECR) is a fully managed Docker container registry that makes it easy to store, share, and deploy container images. We will learn how to build docker image for a springboot microservices app using Azure DevOps(ADO) build pipeline and push docker image into AWS ECR.
What are we going to do in this lab?
1. Create a Repository in AWS ECR for storing docker images
2. Create an IAM user and AmazonEC2ContainerRegistryFullAccess policy.
3. Create access keys for IAM user in AWS console
4. Create service connection in AzureDevOps to connect to AWS using IAM user access & secret keys.
5. Create Azure DevOps Build pipeline with below tasks:
- maven build for building JAR
- build docker image
- push docker image into ECR
6. Verify if docker image has been pushed to AWS ECR
Pre-requisites:
- Azure DevOps Account setup and project is created in ADO
- Install AWS toolkit for Azure DevOps
- Setup springboot app in GitHub (you can fork this repository)
- Create service connection in ADO to connect to GitHub personal access Token
Watch Steps in YouTube channel:
Step 1 - Create a repo in ECR
Go to AWS console, type ECR
Click on Create Repository
Enter name for your repo - all lower case and Click create repository
Create an IAM user
Go to AWS console --> IAM --> Add Users
Enter name for the user
Search for EC2 and choose AmazonEC2ContainerRegistryFullAccess
Click on Create UserCreate security credentials
Click on user name ecr-user
Click on Security credentials
Create Service connection
Go to Project settings --> Service Connections
Enter Access keys and Secret keys
Click on save
Create a classic Azure Build pipeline
Click on use the classic editor
Choose a template for the pipeline, type docker and select docker container
Click on Apply
Choose Ubuntu latest as build agent
Add Maven task for building springboot JAR file
Make sure Maven task is moved up..it should be a first task
enter maven goas as install
Customize build an image Task
start customizing the task, choose the version as 2.0
Enter $(imageName) as Container repository
Select build as command from drop down
Tags as it have shown below
Remove push an image taskAdd ECR push task
now configure the task
Select as shown in screenshot
Choose aws service connection from drop down
select region as per your settings.
select Image ID
enter as $(imageName):$(Build.BuildId)
$(Build.BuildId) as tar repo tag
Now make sure build is successful.
Save and Queue
Select ubuntu latest as build agent..do NOT select window agents.Verify if Docker image has been pushed into AWS ECR
Now login to AWS console --> Go to ECR--> select your repo. verify if image has been uploaded successfully.