Giter Club home page Giter Club logo

vsts-agent-docker's Introduction

Deprecated

This repo and Docker container are deprecated. To run the agent in a Docker container, see the docs.

You may be looking for the Azure Pipelines hosted images, which are generated in the GitHub Actions Virtual Environments repo.

vsts-agent-docker's People

Contributors

brcrista avatar chrispat avatar davidstaheli avatar hardcorehead87 avatar keljos avatar ljani avatar lkillgore avatar mathieu-benoit avatar rkrishna12 avatar roshankumarmicrosoft avatar sachinma avatar smokedlinq avatar stepro avatar thechrisjohnson avatar tingluohuang avatar vtbassmatt avatar yacaovsnc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vsts-agent-docker's Issues

Error in .NET Core: The file type was not recognized

We've been using Hosted Linux Preview images in the last months, in order to build Linux Containers for a Azure Container Service + Kubernetes cluster.

In the last days, we've noticed that our VSTS Build jobs are broken (find log below).

Al information found on the net talks about an old scenario where .NET Core was switching from .json to .csproj.

If we switch to Hosted VS 2017 the Restore command works properly, but we need to use Linux Based agents to build our images.

Thanks,

******************************************************************************
Starting: Restore
******************************************************************************
==============================================================================
Task         : .NET Core
Description  : Build, test and publish using dotnet core command-line.
Version      : 1.0.2
Author       : Microsoft Corporation
Help         : [More Information](https://go.microsoft.com/fwlink/?linkid=832194)
==============================================================================
/usr/bin/dotnet restore /opt/vsts/work/1/s/Project1.sln --configfile ./CI-Nuget.config
Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include commandline arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
Configuring...
-------------------
A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
Decompressing 0%...100%
Expanding 0%...100%
error: Invalid input '/opt/vsts/work/1/s/Project1.sln'. The file type was not recognized.
Error: /usr/bin/dotnet failed with return code: 1
Dotnet command failed with non-zero exit code on the following projects : /opt/vsts/work/1/s/Project1.sln

issue with cli task

Hello guys,

Not sure this is a bug but I'm having an issue while trying to cp my $(Build.ArtifactStagingDirectory) into a shared folder.

The shared folder is mounted within the container in /share/dropfolder with mount.cifs

My failling build cli task is the following one:

cp -R $(Build.ArtifactStagingDirectory)/* /share/dropfolder/EMEA/$(Build.DefinitionName)/$(Build.BuildNumber)/drop/

The distination folders are properly mkdired (with -p option) in a previous task but the cp crashes with the following error:

2017-02-10T17:53:33.0070120Z ##[section]Starting: Run cp
2017-02-10T17:53:33.1741620Z ==============================================================================
2017-02-10T17:53:33.1768660Z Task         : Command Line
2017-02-10T17:53:33.1832410Z Description  : Run a command line with arguments
2017-02-10T17:53:33.1859420Z Version      : 1.1.2
2017-02-10T17:53:33.1922810Z Author       : Microsoft Corporation
2017-02-10T17:53:33.1950240Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613735)
2017-02-10T17:53:33.2014820Z ==============================================================================
2017-02-10T17:53:33.9357640Z [command]/bin/cp -R /vsts/agent/_work/1/a/* /share/dropfolder/EMEA/dockertest/12361/drop/
2017-02-10T17:53:33.9387080Z /bin/cp: cannot stat '/vsts/agent/_work/1/a/*': No such file or directory
2017-02-10T17:53:33.9686390Z ##[error]/bin/cp failed with return code: 1
2017-02-10T17:53:33.9834060Z ##[error]/bin/cp failed with error: /bin/cp failed with return code: 1
2017-02-10T17:53:33.9958170Z ##[section]Finishing: Run cp

when I connect into the container and run the same command:

/bin/cp -R /vsts/agent/_work/1/a/* /share/dropfolder/EMEA/dockertest/12361/drop/

it works like a charm.
Any idea ?

Using Docker Containers to build source inside VSTS Docker Agent

When using the docker image microsoft/vsts-agent:ubuntu-16.04-docker-17.03.0-ce-standard
as VSTS build agent on a linux machine, after my step to build the code files are not being outputted. I am using a docker container to do the build and have the output mapped to a volume on the container that is being used for the build.

I believe this is because the docker commands are be passed to the host through the volume map -v /var/run/docker.sock:/var/run/docker.sock (as per the documentation). It seems the context in which the docker command runs, docker volume mounts are not mapping to the agent container.

I end up with errors like:

[command]/usr/local/bin/docker-compose -f /vsts/agent/_work/1/s/docker-compose.build.yml -p web-front up unit-tests
2017-04-14T01:37:56.4851300Z Starting webfront_unit-tests_1
2017-04-14T01:38:00.2561860Z Attaching to webfront_unit-tests_1
2017-04-14T01:38:00.2586250Z �[36munit-tests_1     |�[0m MSBUILD : error MSB1009: Project file does not exist.
2017-04-14T01:38:00.2618300Z �[36munit-tests_1     |�[0m Switch: ./WebFront.Tests/WebFront.Tests.csproj
2017-04-14T01:38:01.4295840Z �[36mwebfront_unit-tests_1 exited with code 1
2017-04-14T01:38:01.5604130Z ##[section]Finishing: build-test
2017-04-14T01:38:01.6217030Z ##[section]Starting: build image

and

Step 4/5 : ENTRYPOINT dotnet WebFront.dll
2017-04-14T01:38:03.0085400Z  ---> Using cache
2017-04-14T01:38:03.0100830Z  ---> 9fce6802ad0c
2017-04-14T01:38:03.0114590Z Step 5/5 : COPY ./obj/Docker/publish/ .
2017-04-14T01:38:03.0135350Z Service 'build-image' failed to build: lstat obj/Docker/publish/: no such file or directory

This seems similar to #13.

Possible Solution

I was able to make it work by mapping the agent working folder /vsts/code/_work when booting the agent:

docker run \
  -e VSTS_ACCOUNT=<account> \
  -e VSTS_TOKEN=<token>  \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/vsts:/var/vsts \
  -v /vsts/agent/_work:/vsts/agent/_work
  -d microsoft/vsts-agent:ubuntu-16.04-docker-17.03.0-ce-standard

I am not sure if this is the best way to make it work but the build did complete. If this is the best way, this doesn't work out of the box as the start.sh script doesn't support mounting the /vsts/agent/_work folder. When the start.sh script starts it check and removes the /vsts/agent/folder and everything under it:

#snippet of start.sh
if [ -e /vsts/agent -a ! -e /vsts/agent/.agent ]; then
  rm -rf /vsts/agent
fi

which causes the following error when the docker container starts:

rm: cannot remove '/vsts/agent/_work': Device or resource busy

I was able to get it to work by modify the start.sh script. A working example is: https://github.com/jsturtevant/vsts-agent-docker-temp-fix. I will submit a PR for the change though again not sure if this is the best way to solve the issue.

How can i build my dotnet core application?

I have the docker standard image. It states that the .NET Core sdk is instaled. But I can not run and dotnet commands...I want to run the dotnet restore and dotnet build. But not sure which VSTS Tasks to use? Using the new VSTS Build views.

Any hints?

[Docker] microsoft/vsts-agent - Queued build -> Missing capabilities: msbuild, visualstudio, DotNetFramework, vstest

When i start a docker agent, targeting visualstudio.com, the agent registers itself with my private agent pool.
When i queue a new build, I get the following error:

No registered agents found in the selected queue with the following capabilities: msbuild, visualstudio, DotNetFramework, vstest. Use a different queue.

docker run -e VSTS_ACCOUNT=[MyProject]-e TFS_HOST=[MyHost] -e VSTS_POOL=[MyPool] -e VSTS_TOKEN=[MyToken] -it microsoft/vsts-agent

Output:

Determining matching VSTS agent...
Downloading and installing VSTS agent...

>> Connect:

Connecting to server ...

>> Register Agent:

Scanning for tool capabilities.
Connecting to the server.
Successfully added the agent
Testing agent connection.
2018-01-23 08:57:37Z: Settings Saved.
Scanning for tool capabilities.
Connecting to the server.
2018-01-23 08:57:39Z: Listening for Jobs

Googling this error, it appears VisualStudio is not installed on the image.

Any possible solutions on how to fix this in Docker?

Dockerfile for windows failing on visualstudio installation

Hi,

i've used the dockerfiles for windows in the past with success, but currently when I try to rebuild it, it fails on the step installing visual studio 2017 enterprise (chocolatey fails to install it with error code 255).
I've tried to download the vs_enterprise.exe from aka.ms directly and try to install that, but no matter what, I can't get it installed. Anybody have a suggestion?

Include Powershell

The VSTS Agents should include Powershell to be able to run Powershell commands from VSO builds (though their powershell task is currently broken -- looking for powershell instead of pwsh).

An error occurred while sending the request.

Hi,
I am trying to get a docker vsts agent running and get the following error message:

>> End User License Agreements:

Building sources from a TFVC repository requires accepting the Team Explorer Everywhere End User License Agreement. This step is not required for building sources from Git repositories.

A copy of the Team Explorer Everywhere license agreement can be found at:
  /vsts/agent/externals/tee/license.html


>> Connect:

Connecting to server ...
An error occurred while sending the request.

The command I am using is:

docker run -it --name="agent-01" --network="bridge" -e TFS_HOST="TFSHOST" -e VSTS_TOKEN="STRENG_GEHEIM" -v /var/run/docker.sock:/var/run/docker.sock microsoft/vsts-agent:ubuntu-16.04-tfs-2017-docker-17.06.0-ce-standard

Of course the TOKEN in the command above is beeing replaced by a valid token and TFSHOST is beeing replaced by a resolveable hostname.

Things I have checked:

  • The docker Server has access to the TFS Server (actually it itself had a agent running)
  • I tried different immages (with and without docker)
  • Tried different tokens by generating new ones

What am I doing wrong, what did I miss?

Thanks

Unhandled: Failed which: Not found docker: null

Hi all!
I ran almost all containers for VSTS but they all give the error below as I start the container and what error I get.
Interestingly, when I connect to the container where the slit is.
I have Azure Container Registry can be the problem? it may be that you need to do? for example to authorize?

Thank you advance!

docker run
-e VSTS_ACCOUNT=account
-e VSTS_TOKEN=token
-it microsoft/vsts-agent:ubuntu-16.04-docker-17.06.0-ce

Starting: Build an image for Bot
.........................................................................................................
Task : Docker
Description : Build, tag, push, or run Docker images, or run a Docker command. Task can be used with Docker or Azure Container registry.
Version : 0.3.2
Author : Microsoft Corporation
Help : More Information
.........................................................................................................
Unhandled: Failed which: Not found docker: null
.........................................................................................................
Finishing: Build an image for Bot

NodeJS LTS version for docker image

Hello,

I noticed that the docker image is the the latest stable(currently Node 9), but the current LTS is Node 8.

This causes problem when using NPM to install package like bcrypt, where it is compiled to the specific node version.

I am wondering, shouldn't the docker image use the LTS version node since in most cases this is what the majority of people will use in production?

If not, is there a way to work around this? The only solution I have found is to use NPM to remove and add on the actual production server after the deploy.

Regards,

Git LFS support

enabling "checkout files from LFS" via VSTS build definition settings causes a failure in the build
Git-lfs installation failed with exit code: 1

tried to install git-lfs by manually ssh-ing into the node where the vsts agent is hosted, via the following commands
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt install git-lfs

this installed git-lfs successfully but the build still fails as the build agents run in a different environment

issue with connecting to vsts

i have already opened an issue:

microsoft/azure-pipelines-agent#943

should I copy here ?


I have a docker cluster behind a VPN. And also I have a TFS on visualstudio.com, I have downloaded TFS agent container, and want to connect to our TFS but it cannot connect with an alarm of:

Determining matching VSTS agent...
Downloading and installing VSTS agent...
curl: (35) gnutls_handshake() failed: Error in the pull function.

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now

It can ping google.But cannot ping public TFS. I would consider this as a network issue but nginx container was pulled and started with success.

  docker run \
  -e VSTS_ACCOUNT= xxx \
  -e TFS_HOST= yyy \
  -e VSTS_TOKEN= zzz \
  -it microsoft/vsts-agent

also tried this:

docker run \
  -e VSTS_ACCOUNT= xxx \
  -e VSTS_AGENT='$(hostname)-agent'\
  -e VSTS_TOKEN= yyy \
  -e TFS_URL= zzz \
  -e VSTS_POOL= eee \
  -e VSTS_WORK='/var/vsts/$VSTS_AGENT' \
  -v /var/vsts:/var/vsts \
  -it microsoft/vsts-agent:ubuntu-14.04

Although it is behind VPN, I can access the repo from browser btw.

CMake in Linux docker images?

My team uses CMake in our builds. We would love to use Hosted Linux Agent preview for our continuous integration builds in the cloud, but currently the images have CMake on them, so we have to setup a local Linux box in the default queue.

Is it possible to update the docker images to install CMake (the same version that's support in the hosted Windows machines)?

Question: How to prepare for strucktural changes in this repo

Hello,

I am working on a Pull request with some more platforms. I am working on CentOS and Windows Server images at the moment.
In preparation for this I want to rearrange some files and folders. Should I provide a single PR with all changes or should I provide a PR with this Folder changes first?

I hope this is the right place to ask.
Greetings, KirK

Cannot find module "./dockerComposeCommand"

I'm trying to use this to run some docker compose commands, but I keep coming up against a problem where it cannot find a module.

I'm running on an Ubuntu 16.04 host, running the agent as

exec docker run \
  -d \
  --restart always \
  --name docker-build-agent \
  -e VSTS_ACCOUNT=xxxx\
  -e VSTS_TOKEN=xxxx \
  -e VSTS_AGENT=docker-agent \
  -e VSTS_POOL=docker \
  -v /var/run/docker.sock:/var/run/docker.sock \
  microsoft/vsts-agent:ubuntu-16.04-docker-1.13.1

When running, I see the following issues (Cannot find module './dockerComposeCommand')

******************************************************************************
Starting: Run a Docker Compose command
******************************************************************************
==============================================================================
Task         : Docker Compose
Description  : Build, push or run multi-container Docker applications
Version      : 0.3.7
Author       : Microsoft Corporation
Help         : [More Information](http://aka.ms/dockertoolsforvsts)
==============================================================================
/usr/local/bin/docker login -u ******** -p ******** skcontainers.azurecr.io
Login Succeeded
/usr/local/bin/docker logout skcontainers.azurecr.io
Removing login credentials for skcontainers.azurecr.io
Cannot find module './dockerComposeCommand'
******************************************************************************
Finishing: Run a Docker Compose command
******************************************************************************
******************************************************************************

This happens no matter the command I create.

Container can't restart after stop

We are using the TFS on prem container images and currently have the problem that sometimes when the container gets stopped, the agent registration is not removed. Therefore after a restart of the container, the container exits with the information

agent_1  | Cannot configure the agent because it is already configured. To reconfigure the agent, run 'config.cmd remove' or './config.sh remove' first.

The only possibility to bring it up again, is to completely remove the container and create a new one.

Docker commands in container do not work anymore

Hi,

I just updated our build containers to the latest version of ubuntu-16.04-docker-17.06.0-ce-standard.

If I'm using the agent with VSTS, the following error occurs when building a docker image:

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
/usr/local/bin/docker-compose failed with return code: 1

What changed so far? Did I miss something? I only updated the container, nothing else.

Thanks
Marc

vsts linux agent publish artifacts to windows share

Hi,

using: https://github.com/Microsoft/vsts-agent-docker/tree/8d8873c218eb0055c4e0d5e94540a8b941c7e5e6/ubuntu/16.04/tfs/2017-u1/standard

I try to publish an artifact from an Linux agent () into an mounted smb foulder and get this error message:

Cannot publish artifacts from OSX or Linux to a file share. You can change 'Artifact Type' to 'Server', use Windows, or use the 'Copy Files', 'Copy Files Over SSH', or 'FTP Upload' task.

The copy works fine but how I can use this files than after that in the release definition? I get the error there was nothing published

Authentication issues with TFS

I was not able to get these images to work successfully with our on-premise TFS server, but I have a solution.

Our server is not using https, so trying to authenticate with a PAT token will fail. The solution is the use Negotiate authentication. Here is a part of how I modified the start.sh file in my container image:

./bin/Agent.Listener configure --unattended
--agent "${VSTS_AGENT:-$(hostname)}"
--url "$TFS_URL"
--auth Negotiate
--username "$TFS_USERNAME"
--password "$TFS_PASSWORD"
--pool "${VSTS_POOL:-Default}"
--work "${VSTS_WORK:-_work}"
--replace & wait $!

I would make a pull request to make this change, but I am unsure of some things. This looks like it needs to be made in many files, and I am not sure which ones should be changed. Also, I think the proper solution should support either using the VSTS_TOKEN variable or the TFS_USERNAME/TFS_PASSWORD combo. My solution only works with the TFS_USERNAME/TFS_PASSWORD. Finally, I wasn't sure of the best way to support credentials in a file for this scenario.

Should I attempt to make a PR for this or let you guys make these changes?

Invalid configuration provided for username. Terminating unattended configuration.

?1h=
>> End User License Agreements:
Building sources from a TFVC repository requires accepting the Team Explorer Everywhere End User License Agreement. This step is not required for building sources from Git repositories.
A copy of the Team Explorer Everywhere license agreement can be found at:
  /vsts/agent/externals/tee/license.html
>> Connect:
Invalid configuration provided for username. Terminating unattended configuration.

Request: ubuntu-16.04-docker-17.06.0-ce

Hi

Really digging the upgrades to [VSTS+Docker integration] and [Azure+Container Registry] that have happened in the last 6 months. Its so much easier to get going.

Unfortunately I have upgraded all my images to multi-stage build, and I balk at having to re-provision my own agent host.

The new verison of docker has been out for a while, is there an ETA on the new agent container being created?
https://docs.docker.com/release-notes/docker-ce/#17060-ce-2017-06-28
As per the release cycle announcement, this version should be around for 3 months.
https://blog.docker.com/2017/03/docker-enterprise-edition

Also how long till the Linux Hosted Preview agent pool within VSTS is updated with 17.06?

Cheers

Not found docker: null

Anybody seen this one, with the latest ubuntu-16.04 image?

sudo docker run -e VSTS_ACCOUNT="myaccount" -e VSTS_TOKEN="mytoken" -e VSTS_AGENT="docker" -v /var/run/docker.sock:/var/run/docker.sock -it microsoft/vsts-agent:ubuntu-16.04

The agent gets connected to our vsts but when a build is triggered we get that message (Not found docker: null).

Thanks for any and all help.

Corey

Support of git version

Hi,

Today I use agent on DC/OS Azure but when I tried to build with git version this error failed the build

******************************************************************************
Starting: GitVersion
******************************************************************************
==============================================================================
Task         : GitVersion Task
Description  : Easy Semantic Versioning (http://semver.org) for projects using Git
Version      : 3.6.5
Author       : GitVersion Contributors
Help         : See the [documentation](http://gitversion.readthedocs.org/en/latest/) for help
==============================================================================
Supported task execution handler not found. Supported handlers: Node
******************************************************************************
Finishing: GitVersion
******************************************************************************

Can you add git version support on vsts agent image ?

Thank you

Agent updates do not work, 2.124.0 latest version available

Using ubuntu-16.04-standard, at this moment https://$VSTS_ACCOUNT.visualstudio.com/_apis/distributedtask/packages/agent?platform=ubuntu.16.04-x64 returns largest version 2.124.0 (https://github.com/Microsoft/vsts-agent/releases/download/v2.124.0/vsts-agent-ubuntu.16.04-x64-2.124.0.tar.gz), so this is what start.sh will download and install when the container is started.

When an agent update is triggered (in our case, this appears to happen when we run a yaml build), we get the following:

Agent update in progress, do not shutdown agent.
Downloading 2.126.0 agent
Waiting for current job finish running.
Generate and execute update script.
Agent will exit shortly for update, should back online within 10 seconds.
/vsts/agent/_work/_update.sh: line 31: ping: command not found
/vsts/agent/_work/_update.sh: line 31: ping: command not found
/vsts/agent/_work/_update.sh: line 31: ping: command not found
[...]

After many more identical messages the container eventually exists.

Looking at the agent update script for Linux, the ping program is used in two places, but this is not available in the mentioned image.

Adding ping (apt-get install iputils-ping) only marginally improves things, as the container will simply exit after the Agent will exit shortly for update message. Restarting the agent will download version 2.124.0 again, so effectively running yaml builds in docker agents does not work.

I'm not sure if the changed agent binary URLs have something to do with this (not using the latest version from the start that is).

Timezones in ubuntu based agent

We have tests running on the hosted linux preview agents that fail because timezones are missing.
When running a small test on the following docker images I get these results;

docker exec -it microsoft/vsts-agent:ubuntu-16.04-docker-1.12.1-standard

root@c7bad853c997:/var/temp# cat Program.cs
using System;

namespace temp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Timezone test started.");
            var timezones = TimeZoneInfo.GetSystemTimeZones();
            foreach (var timeZoneInfo in timezones)
               Console.WriteLine(timeZoneInfo.Id);
            Console.WriteLine("Timezone test done.");
        }
    }
}
root@c7bad853c997:/var/temp# dotnet run
Timezone test started.
Timezone test done.
root@c7bad853c997:/var/temp# tzselect
/usr/bin/tzselect: line 180: /usr/share/zoneinfo/iso3166.tab: No such file or directory
/usr/bin/tzselect: time zone files are not set up correctly
root@c7bad853c997:/var/temp#

Wrong Path to JAVA_HOME

Hi,

Java builds are not working for the image "microsoft/vsts-agent:ubuntu-16.04-docker-1.11.2-standard".
ERROR:

JAVA_HOME is set to an invalid (not existing) directory: /usr/lib/jvm/default-java
Please set the JAVA_HOME variable in your environment to match the location of your Java installation.

Reason:
Wrong ENV JAVA_HOME in DockerFile for image "microsoft/vsts-agent:ubuntu-16.04-docker-1.11.2-standard"
The correct path (working for me) to java is /usr/lib/jvm/java-8-openjdk-amd64 instead of /usr/lib/jvm/default-java

Workarounds:
a) Set JAVA_HOME at docker run:

docker run \
  -e VSTS_ACCOUNT=<name> \
  -e VSTS_TOKEN=<token> \
  -e VSTS_POOL=<pool> \
  -e JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -it microsoft/vsts-agent:ubuntu-16.04-docker-1.11.2-standard

OR
b) Use an own Dockerfile

FROM microsoft/vsts-agent:ubuntu-16.04-docker-1.11.2-standard
# Fix issue with JAVA_HOME
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

MSBuild support

Are there plans to an image with MSBuild capabilities?
This requires a Windows container ofcourse.

How can I install Nuget,MSBUILD,Webdeploy

Now,I use ubuntu-16.04-tfs-2017-docker-17.03.0-ce-standard for build agent, very good, thanks!
But I need Nuget、MSBUILD、Webdeploy, could you tell me how can I include this in the image?

Windows Container Host/Image repo

It would be great if I could point TFS or VSTS at an image repo and a container host (Server 2016) and it could manage the lifetime for me. There isn't really a need to keep the image up and running all the time. When a build request hits the pool can start a docker image, do the build, save the artifacts, then rmi the image. People can mutate the build environment as they need as part of the build and the changes just get swept away at the end.

No maven, visualstudio or azureps capabilities found

I'm running the vsts-agent with the command:

docker run
    --name vsts-agent -d
    -e VSTS_ACCOUNT=<accont>
    -e VSTS_TOKEN=<token>
    -e VSTS_AGENT=vsts-agent-azure
    -e VSTS_POOL=Azure
    -it microsoft/vsts-agent:ubuntu-16.04-docker-1.12.1-standard

but when queue a new build, I'm getting the error, that there is no maven capabilitie. Even visualstudio or azureps is not found.

But the Docker description says, Java tools (ant, gradle, maven) and other capabilities should be installed

Container stuck in "Restarting" When Docker Daemon is Restarted

Using vsts-agent:ubuntu-16.04-docker-1.12.1-standard.

When run via

docker run --restart=always <blah> -d microsoft/vsts-agent:ubuntu-16.04-docker-1.12.1-standard .

and if the docker service is restarted, the vsts-agent-docker container does not recover from the "Restarting (xx minutes)" . This is causing perception issues that this is not reliable and is preventing adoption of this for our non .net dev.

After doing some research, is this because of improper handling of SIGTERM? It seems that a fork of this
vsts-agent-docker here advertises:

graceful restarts in case of crashes (e.g. with docker run -d --restart=always)

and

correct handling of SIGTERM

I am unable to try this as it is not a standard version that I require with the Java toolchain.

How to use the VS2017/Dockerfile?

Found this docker file in this repo:
windows/servercore/10.0.14393/standard/VS2017/Dockerfile

Which seems to use this as the base image:
microsoft/vsts-agent:windows-10.0.14393

However if I do docker pull microsoft/vsts-agent:windows-10.0.14393 I get this:
Error response from daemon: manifest for microsoft/vsts-agent:windows-10.0.14393 not found

How to use that docker file?

Docker container without tty

I am using this image microsoft/vsts-agent:ubuntu-16.04-docker-1.11.2
to use docker in docker.

Docker cli is working but when i try to run a docker command happens this error.

/usr/local/bin/docker exec -it base-php-fpm ls
cannot enable tty mode on non tty input

without t option works but i cant get stdout.
How can i enable tty?

thx

Is it possible to run the agent as a docker service?

Is is possible to run the agent as a docker service?

I tried to following without success.

docker service create \
  --name=vsts-agent \
  --constraint=node.role==manager \
  --env VSTS_ACCOUNT=<account> \
  --env VSTS_AGENT=<agent> \
  --env VSTS_POOL=<pool> \
  --env VSTS_TOKEN=<token> \
  --env VSTS_WORK='/var/vsts/$VSTS_AGENT' \
  --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
  --mount=type=bind,src=/var/vsts,dst=/var/vsts \
  --tty microsoft/vsts-agent:latest

Building Windows image hangs after installing choco packages

I noticed that a version for Windows has landed in this repo, so I tried to built it myself. However, building the standard image seems to hang after first wave of Chocolatey packages have been installed. Is that a known issue? Anything I can help with? Would love to give this a try.

update dotnet version

I wanted to use the ubuntu-16.04-docker-1.12.1-standard image to run my .net core build. I am using VS2017 RC for development. The build output shows that that a older version of dotnet is installed.

/usr/bin/dotnet --version
1.0.0-preview2-003131

Task : Command Line
Description : Run a command line with arguments
Version : 1.1.2
Author : Microsoft Corporation
Help : More Information

/usr/bin/dotnet restore xxx.sln
error: Invalid input 'xxx.sln'. The file type was not recognized.
/usr/bin/dotnet failed with return code: 1
/usr/bin/dotnet failed with error: /usr/bin/dotnet failed with return code:

Authentication issue

We just install TFS2017 on premise version 15.105.25910.0.

I'm trying to run an agent to a container by running the following command:

docker run -e TFS_HOST=tfs.mycompany.com -e TFS_URL=https://tfs.mycompany.com -e VSTS_TOKEN=************************** -e VSTS_AGENT=%hostname% -e VSTS_WORK=_work -e VSTS_POOL=docker -it microsoft/vsts-agent:ubuntu-16.04-tfs-2017

And I'm getting this output:

End User License Agreements:

Building sources from a TFVC repository requires accepting the Team Explorer Everywhere End User License Agreement. This step is not required for building sources from Git repositories.

A copy of the Team Explorer Everywhere license agreement can be found at:
/vsts/agent/externals/tee/license.html

Connect:

Invalid configuration provided for username. Terminating unattended configuration.

I tried also running an agent from a container with an account created on VS online, and it works fine:

docker run -e VSTS_ACCOUNT=enformat -e VSTS_TOKEN=***************************** -e VSTS_POOL=docker -it microsoft/vsts-agent:ubuntu-16.04

Is there any problem with start.sh script ?

Do we need to configure custom authentication on our servers (anonymous authentication is enabled) ? Right now we've got agents installed on premise and they are working fine.

Using TFS_HOST environment variable not working for TFS server

When using the vsts-agent-docker in combination with an on premise TFS 2017 server using the TFS_HOST environment variable produces a http url. As mentioned in vsts-agent Issue 695 the authentication with a PAT token requires a https connection.

I am aware that I can set the url using the TFS_URL environment variable to configure the correct https url.

Anyway it would make sense to change the url build from the TFS_HOST environment variable a https url as it required anyway.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.