{"id":27060574,"url":"https://github.com/lambda3/docker-azure-pipelines-agent","last_synced_at":"2025-06-30T07:33:33.363Z","repository":{"id":48885338,"uuid":"62745108","full_name":"Lambda3/docker-azure-pipelines-agent","owner":"Lambda3","description":"A VSTS Agent that runs on docker","archived":false,"fork":false,"pushed_at":"2022-09-26T13:29:23.000Z","size":104,"stargazers_count":16,"open_issues_count":0,"forks_count":17,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-08T12:02:40.801Z","etag":null,"topics":["azure-devops","azure-pipelines-agent","docker-image","dockerfile","vsts","vsts-agent"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/lambda3/azure-pipelines-agent/","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lambda3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-06T18:43:19.000Z","updated_at":"2022-11-08T17:45:40.000Z","dependencies_parsed_at":"2023-01-18T20:45:21.385Z","dependency_job_id":null,"html_url":"https://github.com/Lambda3/docker-azure-pipelines-agent","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/Lambda3/docker-azure-pipelines-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda3%2Fdocker-azure-pipelines-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda3%2Fdocker-azure-pipelines-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda3%2Fdocker-azure-pipelines-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda3%2Fdocker-azure-pipelines-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lambda3","download_url":"https://codeload.github.com/Lambda3/docker-azure-pipelines-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda3%2Fdocker-azure-pipelines-agent/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262731743,"owners_count":23355412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-devops","azure-pipelines-agent","docker-image","dockerfile","vsts","vsts-agent"],"created_at":"2025-04-05T13:20:08.828Z","updated_at":"2025-06-30T07:33:33.335Z","avatar_url":"https://github.com/Lambda3.png","language":"Dockerfile","readme":"# Azure Pipelines Agent Docker Image\n\nThis repository contains `Dockerfile` definitions for\n[lambda3/azure-pipelines-agent](https://github.com/lambda3/docker-azure-pipelines-agent).\n\nThis project allows the Azure Pipelines Agent to run on Docker or Kubernetes\n(with Helm).\n\n[![Downloads from Docker Hub](https://img.shields.io/docker/pulls/lambda3/azure-pipelines-agent.svg)](https://registry.hub.docker.com/u/lambda3/azure-pipelines-agent)\n[![Build](https://github.com/lambda3/docker-azure-pipelines-agent/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/Lambda3/docker-azure-pipelines-agent/actions/workflows/build.yml)\n\n## Supported tags\n\n* [`latest` (*agent/Dockerfile*)](https://github.com/lambda3/docker-azure-pipelines-agent/blob/main/agent/Dockerfile)\n* [`docker` (*agent-docker/Dockerfile*)](https://github.com/lambda3/docker-azure-pipelines-agent/blob/main/agent-docker/Dockerfile)\n\n## Configuration\n\nFor `latest`, you need to set these environment variables:\n\n* `AGENT_PAT` - The personal access token from Azure Pipelines. Required. See\n  [Microsoft Docs](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-linux?view=azure-devops#authenticate-with-a-personal-access-token-pat) for instructions on how to create the PAT.\n* `VS_TENANT` - The Azure Pipelines tenant, a.k.a. the value that goes before .visualstudio.com, i.e., on foo.visualstudio.com, should be `foo`. Required.\n* `AGENT_POOL` - The agent pool. Optional. Default value: `Default`\n\nFor `docker`, you may have a predefined login using these additional variables,\n(but you should avoid it, see the disclaimer after the variables):\n\n* `DOCKER_USERNAME` - Your docker user name. Optional, no default.\n* `DOCKER_PASSWORD` - Your docker password. Optional, no default.\n* `DOCKER_SERVER` - Your docker registries, defaults to Docker's default public\n  registry. Optional.\n\nIf you do not specify the Docker username and password the agent will not login.\n\n**Disclaimer**: Setting the above variables will connect the agent permanently\nto a docker registry. Instead, you should use the\n[Docker Task](https://docs.microsoft.com/azure/devops/pipelines/tasks/build/docker)\nand with a\n[Docker registry service connection](https://docs.microsoft.com/azure/devops/pipelines/library/service-endpoints#sep-docreg)\nprovide the authentication. This will enable the agent to work with multiple\nregistries and lower the risk of attack.\n\n## Running\n\n### Which tag you should use\n\n* Use `latest` if you want to run the latest agent\n* Use the agent tag version, for example `2.154.3`, to run an specific\nversion, but old agents will usually auto update.\n* Use `docker` if you want to the agent to use the host's Docker engine\n* Use the agent tag version plus `-docker`, for example `2.154.3-docker`, to\nrun an specific version, but old agents will usually auto update.\n\nAvoid the `docker` tags, prefer to host the Docker engine on a separate host.\n\n### Kubernetes with Helm Chart\n\nSee [the chart readme](https://github.com/Lambda3/helmcharts/blob/main/charts/azure-pipelines-agent/README.md).\n\n### Docker\n\nOn Linux or on a Mac (using Docker for Mac), using bash, set the variables:\n\n````bash\nexport VS_TENANT=\u003cnameofyourtenant\u003e\nexport AGENT_PAT=\u003cyourpat\u003e\n````\n\nThen run:\n\n````bash\ndocker run --name azure-pipelines-agent -ti -e VS_TENANT=$VS_TENANT -e AGENT_PAT=$AGENT_PAT -d -v /agent/_works:/agent/_works lambda3/azure-pipelines-agent:latest\n````\n\nOn Windows (using Docker for Windows), using PowerShell, set the variables:\n\n````powershell\n$env:VS_TENANT=\u003cnameofyourtenant\u003e\n$env:AGENT_PAT=\u003cyourpat\u003e\n````\n\nThen run:\n\n````powershell\ndocker run --name azure-pipelines-agent -ti -e VS_TENANT=$env:VS_TENANT -e AGENT_PAT=$env:AGENT_PAT -d lambda3/azure-pipelines-agent:latest\n````\n\n**Important**: If you build using Docker containers, be careful with volume mounts, as they\nwill be mounted on the Docker host, not on the agent's file system. For the\nagent to work as expected mount `/agent/_works` from the host to the agent\ncontainer, adding to docker run `-v /agent/_works:/agent/_works`.\nThis will keep the agent staging directory (and other work directories)\npersistent across agent restarts. Also, it is recommended that you mount to a\ndirectory that is relative to this directory, like the staging directory, so\nwhen it is mounted on the host, it is also available for the agent.\n\n#### With Docker support\n\nAgain, this is not recommended, see the docs before to learn why. You will use\nthe `docker` tag.\n\nOn Linux or on a Mac (using Docker for Mac), using bash, set the variables:\n\n````bash\nexport VS_TENANT=\u003cnameofyourtenant\u003e\nexport AGENT_PAT=\u003cyourpat\u003e\nexport DOCKER_USERNAME=\u003cyourdockerusername\u003e\nexport DOCKER_PASSWORD=\u003cyourdockerpassword\u003e\nexport DOCKER_SERVER=\u003cdockerserver\u003e\n````\n\nThen run:\n\n````bash\ndocker run --name azure-pipelines-agent -ti -e VS_TENANT=$VS_TENANT -e AGENT_PAT=$AGENT_PAT -e DOCKER_USERNAME=$DOCKER_USERNAME -e DOCKER_PASSWORD=$DOCKER_PASSWORD -e DOCKER_SERVER=$DOCKER_SERVER -d --volume=/var/run/docker.sock:/var/run/docker.sock -v /agent/_works:/agent/_works lambda3/azure-pipelines-agent:docker\n````\n\nOn Windows (using Docker for Windows), using PowerShell, set the variables:\n\n````powershell\n$env:VS_TENANT=\u003cnameofyourtenant\u003e\n$env:AGENT_PAT=\u003cyourpat\u003e\n$env:DOCKER_USERNAME=\u003cyourdockerusername\u003e\n$env:DOCKER_PASSWORD=\u003cyourdockerpassword\u003e\n$env:DOCKER_SERVER=\u003cdockerserver\u003e\n````\n\nThen run:\n\n````powershell\ndocker run --name azure-pipelines-agent -ti -e VS_TENANT=$env:VS_TENANT -e AGENT_PAT=$env:AGENT_PAT -e DOCKER_USERNAME=$env:DOCKER_USERNAME -e DOCKER_PASSWORD=$env:DOCKER_PASSWORD -e DOCKER_SERVER=$env:DOCKER_SERVER -d --volume=/var/run/docker.sock:/var/run/docker.sock lambda3/azure-pipelines-agent:docker\n````\n\n## Software installed\n\nBased on the latest LTS Ubuntu image, with the following added packages:\n\n* apt-transport-https\n* build-essential\n* curl\n* gdebi-core\n* git\n* iproute2\n* iputils-ping\n* libicu60\n* libssl-dev\n* libunwind8\n* libuuid1\n* python\n* python-pip\n* python3\n* python3-pip\n* software-properties-common\n* sudo\n* unzip\n* vim\n* wget\n* zip\n\nPlus:\n\n* .NET Core (current and latest LTS)\n* Azure CLI\n* PowerShell Core (pwsh - latest stable)\n* Node (latest LTS) and nvm, Npm and Yarn\n* Google Chrome\n* kubectl\n* Helm CLI\n* Terraform CLI\n* Openjdk (latest LTS)\n* Docker CLI\n* docker-compose\n\nSee the\n[Dockerfile](https://github.com/lambda3/docker-azure-pipelines-agent/blob/main/agent/Dockerfile)\nfor more information.\n\n## Maintainers\n\n* [Giovanni Bassi](http://blog.lambda3.com.br/L3/giovannibassi/), aka Giggio, [Lambda3](http://www.lambda3.com.br), [@giovannibassi](https://twitter.com/giovannibassi)\n\n## License\n\nThis software is open source, licensed under the Apache License, Version 2.0.\nSee [LICENSE.txt](https://github.com/lambda3/azure-pipelines-agent/blob/main/LICENSE.txt) for details.\nCheck out the terms of the license before you contribute, fork, copy or do anything\nwith the code. If you decide to contribute you agree to grant copyright of all your contribution to this project, and agree to\nmention clearly if do not agree to these terms. Your work will be licensed with the project at Apache V2, along the rest of the code.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambda3%2Fdocker-azure-pipelines-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flambda3%2Fdocker-azure-pipelines-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambda3%2Fdocker-azure-pipelines-agent/lists"}