You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins构建失败:报错‘error storing credentials’,并发构建时出现冲突

你这遇到的是多构建并行时Docker凭证存储的竞态冲突问题——当两个构建进程同时往系统钥匙串里写GitHub Packages的凭证条目时,第二个进程就会因为这个条目已经被第一个进程在创建中而报错。单个构建时没有竞争,所以不会出问题。

给你几个可行的解决思路:

1. 提前统一完成Docker登录,复用凭证

不要让每个构建都单独执行docker login,而是在所有并行构建启动前,先在构建环境里统一执行一次登录操作。这样所有后续的构建任务都会共享已有的登录状态,不用再重复写入凭证,从根源避免冲突。

2. 修改登录命令,跳过凭证持久化存储

如果你必须每个构建都执行登录,可以修改docker login命令,加上--skip-credentials-store参数,同时改用更安全的--password-stdin方式传密码,这样就不会往钥匙串里写凭证,自然也就不会有冲突了:

echo "********" | docker login -u z*******t --password-stdin --skip-credentials-store https://docker.pkg.github.com

注意:这种方式的凭证只会在当前会话生效,会话结束后就失效,适合临时构建或者不需要持久化凭证的场景。

3. 序列化登录步骤,避免并发写入

如果你的构建流程必须每个任务都单独登录,那可以把登录步骤从并行任务里抽出来,改成串行执行——先让所有构建的登录操作按顺序跑完,再启动并行的构建任务。这样同一时间只有一个进程在操作钥匙串,就不会出现"条目已存在"的报错了。

补充一句:这个错误本质是系统钥匙串不支持对同一个条目进行并发写入操作,所以只要避开多个进程同时写同一条凭证的情况,问题就解决啦。

内容的提问来源于stack exchange,提问作者csaba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:48:11