├── .gitattributes ├── LICENSE ├── README.md ├── build.sh ├── dirs.sh ├── images └── vsts.png ├── latest.tag ├── push.sh ├── tags-md.sh ├── ubuntu ├── 14.04 │ ├── Dockerfile │ ├── docker │ │ ├── 17.06.0-ce │ │ │ ├── Dockerfile │ │ │ └── standard │ │ │ │ └── Dockerfile │ │ ├── 17.12.0-ce │ │ │ ├── Dockerfile │ │ │ └── standard │ │ │ │ └── Dockerfile │ │ └── 18.06.1-ce │ │ │ ├── Dockerfile │ │ │ └── standard │ │ │ └── Dockerfile │ ├── standard │ │ └── Dockerfile │ ├── start.sh │ └── tfs │ │ ├── 2017 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2018 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2017-u1 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2018-u1 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2018-u2 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ ├── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 18.06.1-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ └── 2018-u3 │ │ ├── Dockerfile │ │ ├── docker │ │ ├── 17.12.0-ce │ │ │ ├── Dockerfile │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ └── start.sh │ │ └── 18.06.1-ce │ │ │ ├── Dockerfile │ │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ │ └── start.sh │ │ ├── standard │ │ ├── Dockerfile │ │ └── start.sh │ │ └── start.sh ├── 16.04 │ ├── Dockerfile │ ├── docker │ │ ├── 17.06.0-ce │ │ │ ├── Dockerfile │ │ │ └── standard │ │ │ │ └── Dockerfile │ │ ├── 17.12.0-ce │ │ │ ├── Dockerfile │ │ │ └── standard │ │ │ │ └── Dockerfile │ │ └── 18.06.1-ce │ │ │ ├── Dockerfile │ │ │ └── standard │ │ │ └── Dockerfile │ ├── standard │ │ └── Dockerfile │ ├── start.sh │ └── tfs │ │ ├── 2017 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2018 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2017-u1 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2018-u1 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ ├── 2018-u2 │ │ ├── Dockerfile │ │ ├── docker │ │ │ ├── 17.06.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ ├── 17.12.0-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ │ └── 18.06.1-ce │ │ │ │ ├── Dockerfile │ │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ │ └── start.sh │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ └── start.sh │ │ └── 2018-u3 │ │ ├── Dockerfile │ │ ├── docker │ │ ├── 17.12.0-ce │ │ │ ├── Dockerfile │ │ │ ├── standard │ │ │ │ ├── Dockerfile │ │ │ │ └── start.sh │ │ │ └── start.sh │ │ └── 18.06.1-ce │ │ │ ├── Dockerfile │ │ │ ├── standard │ │ │ ├── Dockerfile │ │ │ └── start.sh │ │ │ └── start.sh │ │ ├── standard │ │ ├── Dockerfile │ │ └── start.sh │ │ └── start.sh ├── Dockerfile.template ├── docker │ ├── Dockerfile.template │ └── versions ├── standard │ ├── Dockerfile.template │ └── versions ├── start.sh ├── tfs │ ├── Dockerfile.template │ ├── releases │ └── start.sh └── versions ├── update.sh └── windows └── servercore └── 10.0.14393 ├── Dockerfile ├── Start.cmd ├── Start.ps1 └── standard ├── VS2015 └── Dockerfile └── VS2017 └── Dockerfile /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.sh text eol=lf 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) Microsoft Corporation 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 | SOFTWARE. -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd "$(dirname $0)" 5 | 6 | count=0 7 | start=$(date +%s) 8 | 9 | while read dir; do 10 | echo "Building $dir" 11 | docker build -q -t microsoft/vsts-agent:${dir//\//-} $dir 12 | _=$((count+=1)) 13 | done < <(./dirs.sh $1) 14 | 15 | LATEST_TAG=$(cat latest.tag) 16 | if [ -n "$(docker images -f reference=microsoft/vsts-agent:$LATEST_TAG -q)" ]; then 17 | docker tag microsoft/vsts-agent:$LATEST_TAG microsoft/vsts-agent 18 | fi 19 | 20 | end=$(date +%s) 21 | ((seconds=end-start)) 22 | 23 | if (( $seconds > 3600 )) ; then 24 | ((hours=seconds/3600)) 25 | ((minutes=(seconds%3600)/60)) 26 | ((seconds=(seconds%3600)%60)) 27 | echo "Built $count images in $hours hour(s), $minutes minute(s) and $seconds second(s)" 28 | elif (( $seconds > 60 )) ; then 29 | ((minutes=(seconds%3600)/60)) 30 | ((seconds=(seconds%3600)%60)) 31 | echo "Built $count images in $minutes minute(s) and $seconds second(s)" 32 | else 33 | echo "Built $count images in $seconds seconds" 34 | fi -------------------------------------------------------------------------------- /dirs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd "$(dirname $0)" 5 | 6 | ubuntu() { 7 | cd ubuntu 8 | 9 | dirs() { 10 | BASE_DIR=$1 11 | echo $BASE_DIR 12 | while read TARGET_UBUNTU_VERSION na; do 13 | if [ -n "$(echo $BASE_DIR | grep ^ubuntu/$TARGET_UBUNTU_VERSION)" ]; then 14 | echo $BASE_DIR/standard 15 | fi 16 | done < <(cat standard/versions | sed 's/\r//') 17 | while read DOCKER_VERSION na; do 18 | DOCKER_DIR=$BASE_DIR/docker/$DOCKER_VERSION 19 | echo $DOCKER_DIR 20 | while read TARGET_UBUNTU_VERSION na; do 21 | if [ -n "$(echo $DOCKER_DIR | grep ^ubuntu/$TARGET_UBUNTU_VERSION)" ]; then 22 | echo $DOCKER_DIR/standard 23 | fi 24 | done < <(cat standard/versions | sed 's/\r//') 25 | done < <(cat docker/versions | sed 's/\r//') 26 | } 27 | 28 | while read UBUNTU_VERSION na; do 29 | dirs ubuntu/$UBUNTU_VERSION 30 | while read VSTS_AGENT_RELEASE na; do 31 | dirs ubuntu/$UBUNTU_VERSION/${VSTS_AGENT_RELEASE/-/\/} 32 | done < <(cat tfs/releases | sed 's/\r//') 33 | done < <(cat versions | sed 's/\r//') 34 | 35 | cd .. 36 | } 37 | 38 | ${1:-ubuntu} 39 | -------------------------------------------------------------------------------- /images/vsts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vsts-agent-docker/1a305c85471df1c61cab9ea15de26301b661f234/images/vsts.png -------------------------------------------------------------------------------- /latest.tag: -------------------------------------------------------------------------------- 1 | ubuntu-16.04-docker-18.06.1-ce-standard -------------------------------------------------------------------------------- /push.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd "$(dirname $0)" 5 | 6 | while read dir; do 7 | docker push microsoft/vsts-agent:${dir//\//-} 8 | done < <(./dirs.sh) 9 | 10 | if [ -n "$(docker images -f reference=microsoft/vsts-agent:latest -q)" ]; then 11 | docker push microsoft/vsts-agent:latest 12 | fi 13 | -------------------------------------------------------------------------------- /tags-md.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd "$(dirname $0)" 5 | 6 | GIT_COMMIT=${1:-$(git rev-parse HEAD)} 7 | GITHUB_BASE_URL="https://github.com/microsoft/vsts-agent-docker/blob/$GIT_COMMIT" 8 | LATEST_TAG=$(cat latest.tag) 9 | 10 | while read dir; do 11 | DOCKER_TAG=${dir//\//-} 12 | DOCKERFILE_URL=$dir/Dockerfile 13 | MD="[\`$DOCKER_TAG\`]($GITHUB_BASE_URL/$DOCKERFILE_URL)" 14 | if [ "$DOCKER_TAG" == "$LATEST_TAG" ]; then 15 | MD="$MD, [\`latest\`]($GITHUB_BASE_URL/$DOCKERFILE_URL)" 16 | fi 17 | echo "- $MD [($DOCKERFILE_URL)]($GITHUB_BASE_URL/$DOCKERFILE_URL)" 18 | done < <(./dirs.sh $1) 19 | -------------------------------------------------------------------------------- /ubuntu/14.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:14.04 2 | 3 | # To make it easier for build and release pipelines to run apt-get, 4 | # configure apt to not require confirmation (assume the -y argument by default) 5 | ENV DEBIAN_FRONTEND=noninteractive 6 | RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes 7 | 8 | # Trusty needs an updated backport of apt to avoid hash sum mismatch errors 9 | RUN [ "trusty" = "trusty" ] \ 10 | && curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \ 11 | && apt-get update \ 12 | && apt-get install apt=1.2.10 \ 13 | && rm -rf /var/lib/apt/lists/* \ 14 | && rm -rf /etc/apt/sources.list.d/* \ 15 | || echo -n 16 | 17 | RUN apt-get update \ 18 | && apt-get install -y --no-install-recommends \ 19 | software-properties-common \ 20 | && apt-add-repository ppa:git-core/ppa \ 21 | && apt-get update \ 22 | && apt-get install -y --no-install-recommends \ 23 | apt-utils \ 24 | curl \ 25 | git \ 26 | jq \ 27 | libcurl3 \ 28 | libicu52 \ 29 | libunwind8 \ 30 | netcat \ 31 | && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \ 32 | && apt-get install -y --no-install-recommends git-lfs \ 33 | && rm -rf /var/lib/apt/lists/* \ 34 | && rm -rf /etc/apt/sources.list.d/* 35 | 36 | # Accept the TEE EULA 37 | RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ 38 | && cd "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ 39 | && echo '' > "com.microsoft.tfs.client.productid.xml" 40 | 41 | WORKDIR /vsts 42 | 43 | COPY ./start.sh . 44 | RUN chmod +x start.sh 45 | 46 | CMD ["./start.sh"] 47 | -------------------------------------------------------------------------------- /ubuntu/14.04/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.06.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.15.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/14.04/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.06.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.15.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/14.04/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.12.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.18.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/14.04/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.12.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.18.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/14.04/docker/18.06.1-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 18.06.1-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.22.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/14.04/docker/18.06.1-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 18.06.1-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.22.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.14.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.14.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.14.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.14.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.14.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.14.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017-u1/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.14.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.14.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.14.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.14.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.14.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.14.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2017/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.14.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.14.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.14.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.14.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.14.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.14.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u1/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/18.06.1-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-18.06.1-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/18.06.1-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-18.06.1-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/18.06.1-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/docker/18.06.1-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u2/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/18.06.1-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-18.06.1-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/18.06.1-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-18.06.1-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/18.06.1-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/docker/18.06.1-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018-u3/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.14.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.14.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.14.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.14.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.14.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-14.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.14.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/14.04/tfs/2018/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:16.04 2 | 3 | # To make it easier for build and release pipelines to run apt-get, 4 | # configure apt to not require confirmation (assume the -y argument by default) 5 | ENV DEBIAN_FRONTEND=noninteractive 6 | RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes 7 | 8 | # Trusty needs an updated backport of apt to avoid hash sum mismatch errors 9 | RUN [ "xenial" = "trusty" ] \ 10 | && curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \ 11 | && apt-get update \ 12 | && apt-get install apt=1.2.10 \ 13 | && rm -rf /var/lib/apt/lists/* \ 14 | && rm -rf /etc/apt/sources.list.d/* \ 15 | || echo -n 16 | 17 | RUN apt-get update \ 18 | && apt-get install -y --no-install-recommends \ 19 | software-properties-common \ 20 | && apt-add-repository ppa:git-core/ppa \ 21 | && apt-get update \ 22 | && apt-get install -y --no-install-recommends \ 23 | apt-utils \ 24 | curl \ 25 | git \ 26 | jq \ 27 | libcurl3 \ 28 | libicu55 \ 29 | libunwind8 \ 30 | netcat \ 31 | && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \ 32 | && apt-get install -y --no-install-recommends git-lfs \ 33 | && rm -rf /var/lib/apt/lists/* \ 34 | && rm -rf /etc/apt/sources.list.d/* 35 | 36 | # Accept the TEE EULA 37 | RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ 38 | && cd "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ 39 | && echo '' > "com.microsoft.tfs.client.productid.xml" 40 | 41 | WORKDIR /vsts 42 | 43 | COPY ./start.sh . 44 | RUN chmod +x start.sh 45 | 46 | CMD ["./start.sh"] 47 | -------------------------------------------------------------------------------- /ubuntu/16.04/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.06.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.15.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/16.04/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.06.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.15.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/16.04/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.12.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.18.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/16.04/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 17.12.0-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.18.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/16.04/docker/18.06.1-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 18.06.1-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.22.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/16.04/docker/18.06.1-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION 18.06.1-ce 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION 1.22.0 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.16.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.16.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.16.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.16.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.16.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.116.1/vsts-agent-ubuntu.16.04-x64-2.116.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017-u1/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.16.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.16.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.16.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.16.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.16.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-ubuntu.16.04-x64-2.105.7.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2017/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.16.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.16.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.16.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.16.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.16.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.2/vsts-agent-ubuntu.16.04-x64-2.122.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u1/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/18.06.1-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-18.06.1-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/18.06.1-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-18.06.1-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/18.06.1-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/docker/18.06.1-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u2/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/18.06.1-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-18.06.1-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/18.06.1-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-18.06.1-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/18.06.1-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/docker/18.06.1-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018-u3/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.16.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.06.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.16.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.06.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.16.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.06.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.06.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.12.0-ce/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.16.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.12.0-ce/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-docker-17.12.0-ce-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.16.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.12.0-ce/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/docker/17.12.0-ce/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/standard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:ubuntu-16.04-standard 2 | 3 | RUN set -x \ 4 | && curl -fSL https://github.com/Microsoft/vsts-agent/releases/download/v2.122.1/vsts-agent-ubuntu.16.04-x64-2.122.1.tar.gz -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/standard/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/16.04/tfs/2018/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/Dockerfile.template: -------------------------------------------------------------------------------- 1 | FROM ubuntu:$(UBUNTU_VERSION) 2 | 3 | # To make it easier for build and release pipelines to run apt-get, 4 | # configure apt to not require confirmation (assume the -y argument by default) 5 | ENV DEBIAN_FRONTEND=noninteractive 6 | RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes 7 | 8 | # Trusty needs an updated backport of apt to avoid hash sum mismatch errors 9 | RUN [ "$(UBUNTU_RELEASE)" = "trusty" ] \ 10 | && curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \ 11 | && apt-get update \ 12 | && apt-get install apt=1.2.10 \ 13 | && rm -rf /var/lib/apt/lists/* \ 14 | && rm -rf /etc/apt/sources.list.d/* \ 15 | || echo -n 16 | 17 | RUN apt-get update \ 18 | && apt-get install -y --no-install-recommends \ 19 | software-properties-common \ 20 | && apt-add-repository ppa:git-core/ppa \ 21 | && apt-get update \ 22 | && apt-get install -y --no-install-recommends \ 23 | apt-utils \ 24 | curl \ 25 | git \ 26 | jq \ 27 | libcurl3 \ 28 | libicu$(LIBICU_VERSION) \ 29 | libunwind8 \ 30 | netcat \ 31 | && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \ 32 | && apt-get install -y --no-install-recommends git-lfs \ 33 | && rm -rf /var/lib/apt/lists/* \ 34 | && rm -rf /etc/apt/sources.list.d/* 35 | 36 | # Accept the TEE EULA 37 | RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ 38 | && cd "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ 39 | && echo '' > "com.microsoft.tfs.client.productid.xml" 40 | 41 | WORKDIR /vsts 42 | 43 | COPY ./start.sh . 44 | RUN chmod +x start.sh 45 | 46 | CMD ["./start.sh"] 47 | -------------------------------------------------------------------------------- /ubuntu/docker/Dockerfile.template: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:$(VSTS_AGENT_TAG) 2 | 3 | ENV DOCKER_CHANNEL stable 4 | ENV DOCKER_VERSION $(DOCKER_VERSION) 5 | 6 | RUN set -ex \ 7 | && curl -fL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/`uname -m`/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ 8 | && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin \ 9 | && rm docker.tgz \ 10 | && docker -v 11 | 12 | ENV DOCKER_COMPOSE_VERSION $(DOCKER_COMPOSE_VERSION) 13 | 14 | RUN set -x \ 15 | && curl -fSL "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose \ 16 | && chmod +x /usr/local/bin/docker-compose \ 17 | && docker-compose -v 18 | -------------------------------------------------------------------------------- /ubuntu/docker/versions: -------------------------------------------------------------------------------- 1 | 17.12.0-ce 1.18.0 2 | 18.06.1-ce 1.22.0 3 | -------------------------------------------------------------------------------- /ubuntu/standard/versions: -------------------------------------------------------------------------------- 1 | 14.04 trusty 8 2 | 16.04 xenial 8 3 | -------------------------------------------------------------------------------- /ubuntu/tfs/Dockerfile.template: -------------------------------------------------------------------------------- 1 | FROM microsoft/vsts-agent:$(VSTS_AGENT_TAG) 2 | 3 | RUN set -x \ 4 | && curl -fSL $(VSTS_AGENT_URL) -o agent.tgz \ 5 | && mkdir agent \ 6 | && cd agent \ 7 | && tar -xz --no-same-owner -f ../agent.tgz \ 8 | && cd .. \ 9 | && rm agent.tgz 10 | 11 | COPY ./start.sh . 12 | RUN chmod +x start.sh 13 | 14 | CMD ["./start.sh"] 15 | -------------------------------------------------------------------------------- /ubuntu/tfs/releases: -------------------------------------------------------------------------------- 1 | tfs-2018-u2 https://vstsagentpackage.azureedge.net/agent/2.131.0/vsts-agent-linux-x64-2.131.0.tar.gz 2 | tfs-2018-u3 https://vstsagentpackage.azureedge.net/agent/2.140.2/vsts-agent-linux-x64-2.140.2.tar.gz 3 | -------------------------------------------------------------------------------- /ubuntu/tfs/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -z "$TFS_HOST" -a -z "$TFS_URL" ]; then 5 | echo 1>&2 error: missing TFS_HOST environment variable 6 | exit 1 7 | fi 8 | 9 | if [ -z "$TFS_URL" ]; then 10 | export TFS_URL=https://$TFS_HOST/tfs 11 | fi 12 | 13 | if [ -z "$VSTS_TOKEN_FILE" ]; then 14 | if [ -z "$VSTS_TOKEN" ]; then 15 | echo 1>&2 error: missing VSTS_TOKEN environment variable 16 | exit 1 17 | fi 18 | VSTS_TOKEN_FILE=/vsts/.token 19 | echo -n $VSTS_TOKEN > "$VSTS_TOKEN_FILE" 20 | fi 21 | unset VSTS_TOKEN 22 | 23 | if [ -n "$VSTS_AGENT" ]; then 24 | export VSTS_AGENT="$(eval echo $VSTS_AGENT)" 25 | fi 26 | 27 | if [ -n "$VSTS_WORK" ]; then 28 | export VSTS_WORK="$(eval echo $VSTS_WORK)" 29 | mkdir -p "$VSTS_WORK" 30 | fi 31 | 32 | cd /vsts/agent 33 | 34 | web-server() { 35 | while true; do 36 | printf 'HTTP/1.1 302 Found\r\nLocation: $TFS_URL/_admin/_AgentPool\r\n\r\n' | nc -l -p 80 -q 0 > /dev/null 37 | done 38 | } 39 | 40 | cleanup() { 41 | ./bin/Agent.Listener remove --unattended \ 42 | --auth PAT \ 43 | --token $(cat "$VSTS_TOKEN_FILE") 44 | } 45 | 46 | if [ -e .agent ]; then 47 | echo "Removing existing VSTS agent configuration..." 48 | cleanup 49 | fi 50 | 51 | trap 'cleanup; exit 130' INT 52 | trap 'cleanup; exit 143' TERM 53 | 54 | export VSO_AGENT_IGNORE=_,MAIL,OLDPWD,PATH,PWD,VSTS_AGENT,TFS_HOST,TFS_URL,VSTS_TOKEN_FILE,VSTS_TOKEN,VSTS_POOL,VSTS_WORK,VSO_AGENT_IGNORE 55 | if [ -n "$VSTS_AGENT_IGNORE" ]; then 56 | export VSO_AGENT_IGNORE=$VSO_AGENT_IGNORE,VSTS_AGENT_IGNORE,$VSTS_AGENT_IGNORE 57 | fi 58 | 59 | source ./env.sh 60 | 61 | ./bin/Agent.Listener configure --unattended \ 62 | --agent "${VSTS_AGENT:-$(hostname)}" \ 63 | --url "$TFS_URL" \ 64 | --auth PAT \ 65 | --token $(cat "$VSTS_TOKEN_FILE") \ 66 | --pool "${VSTS_POOL:-Default}" \ 67 | --work "${VSTS_WORK:-_work}" \ 68 | --replace & wait $! 69 | 70 | web-server & 71 | ./bin/Agent.Listener run & wait $! 72 | -------------------------------------------------------------------------------- /ubuntu/versions: -------------------------------------------------------------------------------- 1 | 14.04 trusty 52 2 | 16.04 xenial 55 3 | -------------------------------------------------------------------------------- /windows/servercore/10.0.14393/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/windowsservercore:10.0.14393.1358 2 | ENV WINDOWS_IMAGE_VERSION=10.0.14393 3 | 4 | RUN mkdir C:\BuildAgent 5 | WORKDIR C:/BuildAgent 6 | COPY ./Start.* ./ 7 | 8 | CMD ["Start.cmd"] -------------------------------------------------------------------------------- /windows/servercore/10.0.14393/Start.cmd: -------------------------------------------------------------------------------- 1 | PowerShell.exe -ExecutionPolicy ByPass .\Start.ps1 2 | --------------------------------------------------------------------------------