如何以非root用户身份在自托管构建代理上执行管道

时间:2019-11-11 16:11:25

标签: azure docker azure-devops azure-devops-self-hosted-agent

我已经构建了在Docker中运行的自托管ubuntu代理。

一切正常,构建代理正在工作等。

除了管道步骤中的所有内容均以root用户而不是非root用户身份执行。

例如当我尝试执行“ npm ci”时,我查看了我的构建代理日志:

; node bin location = /usr/bin/node ; cwd = /azp/agent/_work/1/s/Core ; HOME = /root

vs来自Microsoft托管的构建代理的日志:

; node bin location = /usr/local/bin/node ; cwd = /home/vsts/work/1/s/Core ; HOME = /home/vsts

这给了我很多阶段的问题,因为以root身份运行某些命令需要不同的设置等。 有谁知道如何从ROOT更改它?

我在Microsoft提供的 dockerfile start.sh 脚本中尝试了,但是没有用。如果我以docker用户而不是root用户身份执行start.sh,则构建代理完全不会启动。 有什么线索吗?想法?

1 个答案:

答案 0 :(得分:0)

您可以在该帐户下安装Linux代理,以将其从根目录更改为/home/{accountname}/

下面是有关如何在非root用户下安装linux代理的步骤。

非root用户连接到Linux代理

ssh useraccount@linuxIp

创建一个文件夹并cd该文件夹。

mkdir myagent && cd myagent

从网址下载软件包。

wget https://vstsagentpackage.azureedge.net/agent/2.155.1/vsts-agent-linux-x64-2.155.1.tar.gz

解压缩文件。

tar xzf vsts-agent-linux-x64-2.155.1.gz

配置linux代理