• 【jenkins】采坑合集


    ssh command报错: com.jcraft.jsch.JSchException

    问题:

    jenkins由docker部署,pipeline脚本之前构建一直正常,某天构建突然报错,涉及多处:

    1. 所有项目ssh command报错
    2. webpack的vue2项目npm install报错,vite的vue3项目则正常
    3. 插件安装报错

    下图是ssh command执行报错:
    在这里插入图片描述

    解决:

    1. 排查ssh服务器:ssh user@ip测试jenkins所在宿主机远程连接目标服务器ip正常
    2. 排查凭证配置:账密设置无误
    3. 进入jenkins容器内部测试:ping不通目标ip
    4. 最终通过restart重启jenkins容器所有恢复正常

    npm install时node-sass问题

    问题:
    本地开发没用淘宝镜像从来没有问题,jenkins的pipeline流水线经常出问题:

    1. npm install 卡在node-sass的安装不动
    2. npm install 报错
    3. npm run build 报错

    每次都是各种方法乱试一通,这次梳理一下

    解决:
    使用的是node容器,最新测试成功的代码如下:

    def dockerRuntime(command) {
        def dockerImage = docker.image('node:10.13.0-alpine')
        dockerArgs = '-i '+'-v /data/jenkins/.cache/yarn:/root/.cache/yarn '+'-v /data/jenkins/workspace/${JOB_NAME}:/code -w /code'
        dockerImage.inside("${dockerArgs}") {
            // sh "rm -rf node_modules/"
            sh "npm config set registry https://registry.npmmirror.com && npm config set sass_binary_site https://npmmirror.com/mirrors/node-sass"
            // sh "npm uninstall node-sass"
            sh "npm install node-sass"
            sh "npm install"
            sh "${command}"
        }
    }
    
    stage('Package Install') {
        dockerRuntime('npm run build')
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    个人经验:

    1. npm必须设置淘宝镜像,不设置依赖安装会失败,https://registry.npmmirror.comhttps://npm.taobao.org应该都可以
    2. node-sass必须单独设置sass_binary_site
    3. 一般情况,上述两步即可解决;第一遍构建时npm install时间较长(偶尔能达到半小时以上),构建成功之后后续构建会变快很多
    4. 很久之后需要更新代码部署,突然会卡在node-sass安装的某一步卡死,重新构建继续卡或者报错
    5. 方法一:rm -rf node_modules/,重新构建。试成功过,但过段时间再部署,又出现上一步问题,重新构建多次,时好时坏,无法捉摸;并且该方法删除了所有依赖,会导致npm install时间非常非常长
    6. 方法二:先通过上一步构建成功一次,然后将rm -rf node_modules/注释,之后若再出现问题只移除node-sass依赖npm uninstall node-sass
    7. 构建成功后,注意注释掉rm -rf node_modules/npm uninstall node-sass,短期内一般不会再卡死或报错

    某项目通过上述步骤解决问题,追踪后续记录(下述时间为npm installnpm run build阶段时间):
    第一次构建成功时34分39秒;
    当天内再次构建5分27秒;
    一周之后,构建又卡死在依赖安装,重新构建后成功,3分50秒;
    一天后构建成功,约4分7秒。

  • 相关阅读:
    set容器 集合 常用 API操作 (只读迭代器)
    redsi总结_最佳实战
    Win11安装权限在哪里设置?Win11安装权限设置的方法
    L79.linux命令每日一练 -- 第11章 Linux系统管理命令 -- sar和chkconfig
    编辑距离 只有插入和替换没有删除
    【408篇】C语言笔记-第九章(数据结构概述)
    代理模式
    Spring Boot开发之参数处理
    springMSV
    基于可变形卷积和注意力机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)
  • 原文地址:https://blog.csdn.net/lorogy/article/details/132808117