Skip to content

Build Azure IoT Modules using Azure DevOps Agent in Arm32v7 architecture

Few weeks back, I got a chance to go through IoT platform services provided by Azure and found that it is quite matured by the depth of service they provide. As a Devops Engineer, I always thought of building and deploying IoT Apps/Modules on a memory constraint environment because its bit more challenging than usual machine architecture. Being a great fan of Azure Devops Services, I decided to create a dockerized version of Az Devops Agent with necessary tools for building and deploying Azure IoT Modules baked in arm32v7 device architecture. I made extensive use of my RPi 4(4GB) for creating the ‘Golden’ image by trial and error in Alpine , but later moved to Ubuntu distribution as many of the libraries were not ready available in Alpine distribution and was taking time to find the appropriate libs.

The image is good to run in any arm32v7 devices as I build the image within the same device architecture and image consumes around .85 GB.

Steps to run the Azure Devops Agent

1. Need to get the PAT Token from Azure Devops Organization. Use the below link to generate the token from the menu. Please dont forget to change the <OrgName><OrgName>/_usersSettings/tokens

2. Pull the image from the Docker Hub

docker pull mysticrenji/azdevopsagent-iotedge

3. Once you pull the image snd get the PAT, you use the below commands to run the container

docker run -e AZP_URL={AZ DEVOPS URL} -e AZP_TOKEN={PAT} -e AZP_AGENT_NAME={AGENTNAME} -v /var/run/docker.sock:/var/run/docker.sock {ImageName}


  • AZ DEVOPS URL -><OrgName&gt;
  • PAT -> Personal Access Tokens
  • AGENTNAME -> Any suitable Agent name. By default this new agent would be mapped under Default Agent pools. To change this behavior, need to change the script in the github repo and build the image
  • ImageName – Name of the image


And my Pipeline for building and deploying Azure IoT Module would roughly look like this.

Yep, thats all. Try it and please let me know , if you are stuck with something.

The dockerfile and the related scripts has been placed at this Github repo and also at the DockerHub

Originally taken the post from the blog here


The views expressed and the content shared in all published articles on this website are solely those of the respective authors, and they do not necessarily reflect the views of the author’s employer or the techbeatly platform. We strive to ensure the accuracy and validity of the content published on our website. However, we cannot guarantee the absolute correctness or completeness of the information provided. It is the responsibility of the readers and users of this website to verify the accuracy and appropriateness of any information or opinions expressed within the articles. If you come across any content that you believe to be incorrect or invalid, please contact us immediately so that we can address the issue promptly.

A DevOps engineer by profession, dad, traveler and more interestingly to tweak around stuff inside memory constrained devices during spare time.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.