当前位置: 首页> 教育> 大学 > 使用jenkins 打包前端私服代码失败的问题

使用jenkins 打包前端私服代码失败的问题

时间:2025/8/26 23:08:43来源:https://blog.csdn.net/weixin_38299857/article/details/142070626 浏览次数:0次

问题现象:

  • jinekins 流水线在yarn 编译前端私服依赖包的时候,报错,提示

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

【emm。。。之前的构建都是好好的,也不知道前端大哥啥时候去封装的前端代码,而且奇怪的是没有放在公共库里。。。。】

Pipeline 流水线:

pipeline{
//指定运行此流水线的节点
agent { node { label "master"}}
//流水线的阶段
stages{//阶段1 获取代码stage("拉取代码"){steps{    checkout([$class: 'GitSCM', branches: [[name: '*/develop']], extensions: [], userRemoteConfigs: [[credentialsId: 'test', url: 'git@code.xx.net:xx-n/xx-fe-n/project-a/b/soter-admin.git']]])}}stage("打包编译"){steps{sh '''source /etc/profile && /usr/local/nodejs/bin/yarn && /usr/local/nodejs/bin/yarn build --mode development'''}}stage("部署"){  steps{sh '''bash /root/.jenkins/a/web/web-main.shell a-admin a-web-dev'''}}}

一番排错后,发现是 没有使用机器私钥文件或者 jenkins 私钥凭证 拉取 gitlab中私有封装的依赖包,从而导致打包失败

发现只有在拉取代码阶段使用了 jenjins 上凭证id test 去拉取代码; 后面打包编译阶段,没有使用jenkins私钥凭证或者机器上私钥文件

解决思路:

  • 封装的前端代码,放在公共库里【开发去改造】

  • 前端代码的package.json 文件里,指定 gitlab用户名/密码 ,如下图所示【开发去改造】 不怎么地安全,还是算了把

image-20220401232107052

  • jenkins 流水线的工作节点,使用Jenkins 添加ssh 私钥文件凭证【运维去改造】

最终,我采取了 使用Jenkins 添加ssh 私钥文件凭证 的方式,当构建结束后再自动删除 保留再机器上的私钥文件

虽说有点笨,但是短期内没有发现什么更好的额方法!!!

改造后Pipeline 流水线

pipeline{
//指定运行此流水线的节点
agent { node { label "master"}}
//流水线的阶段
stages{//阶段1 获取代码stage("拉取代码"){steps{    checkout([$class: 'GitSCM', branches: [[name: '*/develop']], extensions: [], userRemoteConfigs: [[credentialsId: 'test', url: 'git@code.xx.net:xx-n/xx-fe-n/project-a/b/soter-admin.git']]])}}stage("打包编译"){steps{withCredentials([sshUserPrivateKey(credentialsId: "test", keyFileVariable: 'keyfile')]) { sh '''cp -rp ${keyfile} /root/.ssh/id_rsachmod 600 /root/.ssh/id_rsasource /etc/profile && /usr/local/nodejs/bin/yarn && /usr/local/nodejs/bin/yarn build --mode developmentrm -rf /root/.ssh/id_rsa'''}}}stage("部署"){  steps{sh '''bash /root/.jenkins/a/web/web-main.shell a-admin a-web-dev'''}}}

备注: 添加的凭证类型

image-20220417214939990

参考:

  • Jenkins管道中使用SSH凭证 Jenkins管道中使用SSH凭证_jenkins sshuserprivatekey-CSDN博客

  • Jenkins的凭证管理 Jenkins的凭证管理_jenkins secret text-CSDN博客

关键字:使用jenkins 打包前端私服代码失败的问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: