ADO流水线中Download secrets <keyvault>预作业偶发失败求助
解决Azure DevOps流水线Azure Key Vault任务偶发找不到.taskkey文件的问题
针对你遇到的自托管Docker代理上Azure Key Vault任务(版本1.226.0)偶发报错ENOENT: no such file or directory, open '/azp/_work/_temp/.taskkey'的问题,给出以下解决方案:
- 升级任务版本:该报错是旧版本任务库的已知问题,直接把Azure Key Vault任务升级到最新稳定版,新版本修复了临时文件处理的并发逻辑缺陷。
- 确保目录权限:检查Docker容器内
/azp/_work/_temp目录的读写权限,确保运行代理的用户有足够权限创建和读取文件。可以在代理启动脚本里添加chown -R <代理用户UID>:<代理用户GID> /azp/_work/_temp或者chmod -R 755 /azp/_work/_temp来配置权限。 - 限制代理并行任务数:如果同一个代理同时跑多个流水线任务,容易出现临时文件的读写竞争。把代理的并行任务数设为1,或者为该流水线分配专属代理,减少并发冲突。
- 预清理临时目录:在流水线的预作业里添加一个Bash步骤,清理临时目录的残留文件:
rm -rf /azp/_work/_temp/* - 检查存储挂载配置:如果
/azp/_work目录是挂载的共享存储,可能存在存储延迟导致文件创建后无法立即读取。换成代理容器的本地存储,或者调整共享存储的挂载参数(比如关闭缓存)。
内容的提问来源于stack exchange,提问作者Sunflame
相关产品推荐
相关产品推荐

