jenkins流水线任务,构建后无法启动Springboot项目的问题

背景:

使用git+jenkins+maven自动触发流水线任务,在Pipeline脚本中打包并调用服务器脚本重启项目(如下):
在这里插入图片描述

问题:

构建任务正常完成,脚本也执行了,但用ps -ef|grep java查看,没看到进程。

问题解决过程:

一开始:

因为之前用过jenkins,脑子里有个印象:jenkins会杀进程。于是沿着这个思路,百度了一串答案,都是在项目启动脚本中加入BUILD_ID=dontKillMe或者source /etc/profile,都没用(万念俱灰)。

后来:

看到一位老哥特别牛气地说:别的乱七八糟的都没用,还得是这个withEnv([‘JENKINS_NODE_COOKIE=dontkillme]’])。于是我又垂死挣扎了一下,“果然”没卵用。

最后:

我突然想起来去看一下项目启动的错误日志。不看不知道,一看吓一跳:原来因为项目使用了ehcache缓存,需要/tmp文件夹的读写等权限,但jenkins的权限不够。
于是给jenkins用户加了权限(chown -R jenkins /tmp),在服务器直接手动起项目,发现还是提示Permission denied。
于是又给**/tmp文件加了读写执行的权限( chmod -R 777 /tmp**,因为对linux的权限也不是特别熟悉,所以使用了777,各位请谨慎),这次手动启动终于起来了。至此,权限就问题解决了。再次使用jenkins构建,也成功了。

总结:

先手动启动确定项目启动没问题,再使用withEnv([‘JENKINS_NODE_COOKIE=dontkillme]’])。我的jenkins Pipeline脚本是这样式儿的:

pipeline {
    agent any

    tools {
        // Install the Maven version configured as "M3" and add it to the path.
        maven "M3"
    }

    stages {
        stage('Build') {
            steps {
                // Get some code from a GitHub repository
                git branch: 'master', url: 'git@代码服务器:root/lishe.git'

                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.skip=true clean package"

                // To run Maven on a Windows agent, use
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }

            post {
                // If Maven was able to run the tests, even if some of the test
                // failed, record the test results and archive the jar file.
                success {
                    archiveArtifacts '*/target/*.jar'
                    withEnv(['JENKINS_NODE_COOKIE=dontkillme]']) {
                        sh '''
                        cd /usr/local/javaApp/项目路径
                        ./start.sh
                        '''
                    }
                }
            }
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值