如何在TeamCity构建代理上安装Docker

3
在我的 Windows Server 2022 上,最近使用 Windows 安装程序安装了 Teamcity Professional 2022.10(版本号:116751),并通过GUI“安装代理”再次使用 Windows 安装程序来安装代理。接下来,我创建了第一个项目,并成功进行了构建和测试。下一步是从此构建创建 Docker 镜像,并将其推送到仓库。但在此处,我遇到了问题:我的已安装代理与该构建不兼容,导致出现以下不兼容性错误:
Incompatible runner: Docker
Unmet requirements: 
docker.version exists
docker.server.version exists

虽然我清楚地知道 docker 版本出了问题,但不确定具体是哪里出了问题,或者如何/在哪里修复。由于代理和 TeamCity 安装都作为 Windows 服务运行(Windows Server 2022),我不确定 docker 版本是否必须安装在代理服务中运行的某个东西上,还是只需在我的 Windows Server 上安装即可。后者是正确的:运行 docker info 显示它已安装。
我试图以某种方式连接到我的代理,尝试通过 RDP 使用其主机名在其中安装 docker,这会提示我输入用户名和密码,但我不知道要使用哪个组合。我尝试使用运行进程的我的账户凭据,但似乎没有任何凭据起作用。在安装程序中,我没有选择任何凭据,因此我不确定如何连接到代理,或者是否可以/必须连接到代理以在其上安装 docker。
我还在代理上找到了一些日志记录:
[2022-11-05 17:07:49,729]   INFO - rains.buildServer.AGENT.DOCKER - Failed to parse version: Docker version master-dockerproject-2022-03-26, build dd7397342a

[2022-11-05 17:07:49,729]   INFO - rains.buildServer.AGENT.DOCKER - Docker client is not available. Check whether it has been installed and PATH environment variable contains path to it.
[2022-11-05 17:07:49,777]   INFO - Server.powershell.agent.DETECT - Found through registry: PowerShell Desktop Edition v5.1.20348.1 64-bit(C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe)
[2022-11-05 17:07:49,778]   INFO - Server.powershell.agent.DETECT - Detecting PowerShell using CommandLinePowerShellDetector
[2022-11-05 17:07:50,125]   INFO - rains.buildServer.AGENT.DOCKER - Docker-compose is not available. Check whether it has been installed and PATH environment variable contains path to it.

在我的代理参数中,我可以找到路径参数,其中包括'C:\Program Files\Docker;',这让我想到它确实是我Windows服务器上的Docker安装版本有关,但我却不知道出了什么问题。

你能告诉我代理的buildagent.properties文件吗?我问这个问题是因为如果代理缺少任何环境变量。代理不会使用系统环境变量,而是在“D:\ BuildAgent1 \ conf \ buildagent.properties”文件中维护自己的环境变量,其中t = D驱动器是我安装代理的位置。 - Kumar Rishabh
1个回答

0

由于代理已安装为服务,它使用了我Windows服务器安装的Docker版本。我想重新安装Docker以查看出了什么问题,但我注意到,例如控制面板无法卸载它,即使Docker信息指定了正在运行的客户端和服务器,Windows 似乎也不知道它已安装。

在追寻安装的所有“隐藏”Docker文件并在主机上重新安装之后,这些警告消失了。

我仍然不确定是否可以连接到生成代理,但因为它似乎使用主机机器上的资源,所以这似乎不是必要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接