Jenkins流水线触发后立即终止问题及相关系统日志
Jenkins流水线触发后立即停止:oci命令找不到问题排查与修复
关键错误日志
Nov 18, 2024 4:54:24 PM WARNING io.fabric8.kubernetes.client.Config getExecCredentialFromExecConfig sh: 1: oci: not found Nov 18, 2024 4:54:24 PM WARNING io.fabric8.kubernetes.client.Config getExecCredentialFromExecConfig Error unmarshalling ExecCredential mapping values are not allowed here in reader, line 1, column 6: sh: 1: oci: not found
问题原因
尽管服务器全局环境已配置oci和kubectl可正常访问,但Jenkins进程的环境变量PATH未包含oci的安装路径,导致kubernetes插件调用oci命令失败,进而引发流水线启动后立即终止。
修复方案
方案1:配置Jenkins全局环境变量
- 进入Jenkins后台,依次点击「Manage Jenkins」→「Configure System」
- 找到「Global properties」模块,勾选「Environment variables」
- 添加环境变量:
- 名称:
PATH - 值:
[oci安装路径]:$PATH(例如oci在/usr/local/bin,则填/usr/local/bin:$PATH)
- 名称:
- 保存配置后重启Jenkins,重试构建
方案2:针对Jenkins节点配置环境变量
若使用agent节点运行流水线:
- 进入「Manage Jenkins」→「Manage Nodes and Clouds」
- 选择目标节点,点击「Configure」
- 在「Node Properties」下勾选「Environment variables」,添加
PATH变量并填入包含oci路径的取值 - 保存配置后重新连接节点,重试构建
方案3:在流水线脚本中显式设置路径
无需修改全局配置,直接在流水线代码中指定环境变量:
pipeline { agent any environment { PATH = "/usr/local/bin:$PATH" // 替换为你的oci实际安装路径 } stages { stage('Deploy') { steps { // 你的流水线执行步骤 } } } }
验证方法
进入Jenkins「脚本控制台」(Manage Jenkins → Script Console),执行以下代码查看Jenkins进程的PATH:
println System.getenv('PATH')
确认输出内容包含oci的安装路径,即可验证环境变量配置生效。
内容的提问来源于stack exchange,提问作者Adnan
相关产品推荐
相关产品推荐

