TeamCity Agent结合Qodana使用时Docker识别异常及流水线报错求助
解决Docker部署TeamCity后的两个问题
一、搞定“docker.server.version exists”流水线错误
- 先查Agent参数配置:去Agent的参数页面,看看是不是手动加过
docker.server.version参数,或者构建配置里重复定义了这个参数。TeamCity会自动从Agent环境拿Docker版本,手动定义就会冲突。 - 清掉构建配置里的重复参数:打开对应的Kotlin/Gradle流水线配置,进参数选项卡,删掉手动设的
docker.server.version条目。 - 重启Agent容器:要是参数是自动注入但还是冲突,重启TeamCity Agent容器,让它重新同步环境变量和参数。
- 检查Gradle脚本:确认构建脚本里有没有主动设
docker.server.version系统属性的代码,比如System.setProperty("docker.server.version", "xxx"),有的话删掉,用TeamAgent自动提供的参数就行。
二、解决Qodana识别不了Docker的问题
- 确保Agent容器挂载了Docker套接字:启动Agent容器时,加挂载参数
-v /var/run/docker.sock:/var/run/docker.sock(Windows上用WSL2的话,可能要写成//var/run/docker.sock:/var/run/docker.sock)。 - 给Agent容器用户加Docker权限:进Agent容器,执行
usermod -aG docker buildagent,让构建用户能操作Docker,之后重启Agent。 - 检查Qodana步骤配置:在Qodana构建步骤里,确认开了Docker相关分析选项,而且正确引用了Agent的Docker环境变量。可以加个前置命令
docker --version,看看能不能正常调用Docker。 - 核对WSL2配置:如果是Windows11用WSL2跑Docker,确保WSL2发行版是默认,Docker Desktop开了WSL2集成,Agent容器跑在WSL2的Docker环境里。
内容的提问来源于stack exchange,提问作者Rodrigo Batista
相关产品推荐
相关产品推荐

