Azure DevOps Agent - Ubuntu Docker Image
Overview
This Docker image provides a self-hosted deployment environment for Azure DevOps, featuring a pre-configured Ubuntu-based agent. It is designed for flexibility, allowing use across various organizations with easy parameterization.
Features
Pre-installed Software and Tools
Java Development Kit (JDK) 11 : Essential for Java development.
Maven : Powerful build tool for Java projects.
Command Line Tools (Android) : Necessary tools for Android development.
Node.js 20.x : Latest version for modern JavaScript and Node.js development.
Docker CLI : Manage Docker containers directly from the agent.
Android SDK : Core libraries for Android application development.
k6 : Modern tool for load testing.
Additional Utilities
jq : Command-line JSON processor.
Git : Version control system.
Zip/Unzip : File compression and extraction tools.
xml2 : XML conversion utility.
wget : Network downloader.
curl : Data transfer tool for various protocols.
etc...
Configuration
To configure the Azure DevOps agent, set the following environment variables:
AZP_URL : URL of your Azure DevOps organization.
AZP_TOKEN : Personal access token for agent registration.
AZP_POOL : Name of the agent pool for the agent.
AZP_AGENT_NAME : Desired name for the agent in the pool.
Tags
latest : Latest version of the image. (This is the normal azure devops agent contenerized) (ubuntu 23.04)
18.04 , 23.04 : This is the normal azure devops agent contenerized (ubuntu 18.04, 23.04)
az-run-once : Use this tag if you want to run a job only once (ubuntu 23.04)
az-container : This is for the Define container jobs (YAML) runs (Not use it for docker self-hosted agent) (ubuntu 23.04)
Getting Started
Using Docker
Pull the image from Docker Hub:
docker pull henda24/ubuntu:<Tag_You_Need>
docker run -d --name az-agent \
-e AZP_URL=<Your_Organization_URL> \
-e AZP_TOKEN=<Your_Access_Token> \
-e AZP_POOL=<Your_Agent_Pool> \
-e AZP_AGENT_NAME=<Your_Agent_Name> \
henda24/ubuntu:<Tag_You_Need>
Copy
Replace <Your_Organization_URL>, <Your_Access_Token>, <Your_Agent_Pool>, and <Your_Agent_Name> with your actual Azure DevOps configuration values.
Using Docker Compose
version: '3.8'
services:
az-agent:
image: henda24/ubuntu:<Tag_You_Need>
env_file:
- .env
restart: always
Copy
Create a .env file in the same directory as your docker-compose.yml file with the following contents:
AZP_URL=<Your_Organization_URL>
AZP_TOKEN=<Your_Access_Token>
AZP_POOL=<Your_Agent_Pool>
AZP_AGENT_NAME=<Your_Agent_Name>
Copy