网站首页 > 技术文章 正文
问题现象:
- 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用户名/密码 ,如下图所示【开发去改造】 不怎么地安全,还是算了把
- 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_rsa
chmod 600 /root/.ssh/id_rsa
source /etc/profile && /usr/local/nodejs/bin/yarn && /usr/local/nodejs/bin/yarn build --mode development
rm -rf /root/.ssh/id_rsa
'''}
}
}
stage("部署"){
steps{
sh '''
bash /root/.jenkins/a/web/web-main.shell a-admin a-web-dev
'''
}
}
}
猜你喜欢
- 2024-11-27 原生微信小程序打包成安卓/IOS应用!#小程序开发
- 2024-11-27 前端笔记(关于解决打包时报node-sass错误的问题)
- 2024-11-27 如何搭建组件库的最小原型
- 2024-11-27 django应用使用docker打包到阿里云
- 2024-11-27 前端 | 解决Electron下载慢,Electron-builder打包慢问题
- 2024-11-27 大型项目打包难题:手动分包真的有效吗?
- 2024-11-27 全网去水印独立版带解析接口服务器打包带前端2.3版本(美化UI)
- 2024-11-27 前端笔记(关于webpack打包时内存溢出问题的解决)
- 2024-11-27 芋道 ruoyi-vue-pro 踩的那些坑—前端编译打包问题
- 2024-11-27 react-native webview怎么加载前端打包出来的SPA静态文件
你 发表评论:
欢迎- 597℃几个Oracle空值处理函数 oracle处理null值的函数
- 591℃Oracle分析函数之Lag和Lead()使用
- 579℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 575℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 571℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 564℃【数据统计分析】详解Oracle分组函数之CUBE
- 550℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 545℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- 前端获取当前时间 (50)
- 前端接口 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)