前提:linux环境,jenkins服务器和springboot服务器不在一台机器。

linux环境,jenkins这里就不说了,主要说下和windows环境的不同。

1. jenkins服务器连接springboot服务器通过秘钥连接,所以需要设置免密码登录,参照:https://www.cnblogs.com/gexiaoshan/p/9404424.html

2. 在jenkins上,系统管理-系统设置里配置秘钥路径,如下图:

Passphrase:密码(key的密码,如果你设置了,没有设置的话,这里不需要填)

Path to key:key文件(私钥)的路径

Key: 秘钥

我这里只要填Path to key: /root/.ssh/id_rsa

SSH Servers配置类似,就不详述了。

3. job的配置,主要如下:

linux上的shell脚本如下:

#!/bin/bash

echo "deploying $project_name..."
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
JAVA_HOME=/data/tools/jdk1.8
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME PATH CLASSPATH DEPLOY_DIR=/data/services
JAR_FILE=$3
PROJECT_NAME=$1
BUILD_NUMBER=$2
BUILD_DATE=$(date +%Y%m%d) DEPLOY_BACKUP_DIR=/data/backup echo "start create backup folders..."
if [ ! -d $DEPLOY_BACKUP_DIR ];then
mkdir -p $DEPLOY_BACKUP_DIR
echo "create folder $DEPLOY_BACKUP_DIR"
fi CURRENT_BUILD_BACKUP_DIR=$DEPLOY_BACKUP_DIR/$PROJECT_NAME/$BUILD_DATE/$BUILD_NUMBER
mkdir -p $CURRENT_BUILD_BACKUP_DIR
echo "create folder $CURRENT_BUILD_BACKUP_DIR" cp $DEPLOY_DIR/$JAR_FILE $CURRENT_BUILD_BACKUP_DIR/$JAR_FILE
echo "create backup folders completed..." cd $DEPLOY_DIR mkdir -p $DEPLOY_DIR/$PROJECT_NAME
mv $DEPLOY_DIR/$JAR_FILE $DEPLOY_DIR/$PROJECT_NAME/$JAR_FILE
cd $DEPLOY_DIR/$PROJECT_NAME echo "ps -ef | grep $JAR_FILE | grep -v grep | awk '{print $2}'"
pid=`ps -ef | grep $JAR_FILE | grep -v grep | grep -v $$ | awk '{print $2}'`
echo "current pid is $pid"
if [ -n "$pid" ]
then
echo "kill current process.pid:[$pid]"
kill -9 $pid
fi #java -jar $JAR_FILE --spring.profiles.active=test > nohup.log & java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=0.0.0.0:$4,suspend=n -jar $JAR_FILE --spring.profiles.active=test -Xms256m -Xmx256m > nohup.log &
if [ $? = 0 ];then
sleep 10
tail -n 50 nohup.log
fi echo "deploy $PROJECT_NAME is completed."

这里启动脚本:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=0.0.0.0:$4,suspend=n -jar $JAR_FILE --spring.profiles.active=test -Xms256m -Xmx256m > nohup.log &

开启了一个debug端口($4:作为参数传进来的),用户测试环境上debug.

调试方式:

在idea上进行配置,如下:

Host:是springboot项目的服务器ip

Port:是上面说的debug端口号,并不是springboot项目本身的端口号。

配置好后就启动debug:

这时访问测试环境地址,就会进入本地debug。

欢迎扫码交流:

七. jenkins部署springboot项目(4)-linux环境--远程调试的更多相关文章

  1. 六. jenkins部署springboot项目(3)--windows环境--远程windows server服务器

    前提:jenkins服务器和windows server服务器不在一台机器上 对于jenkins服务器上编译好的jar或war包如何推送到windows server服务器上. 参照网上的,在wind ...

  2. 五. jenkins部署springboot项目(2)--windows环境--服务

    前提:jenkins和springboot运行在同一台机器 springboot 通过winsw部署为服务 winsw 下载地址:https://github.com/kohsuke/winsw/re ...

  3. 四. jenkins部署springboot项目(1)--window环境

    前提:jenkins和springboot运行在同一台机器 springboot项目使用git和maven jenkins所需的插件如Maven,Git等这里就不再详述. 1.jenkins配置git ...

  4. Jenkins部署springboot项目

    记录jenkins如何部署springboot项目(jar类型的) 一.首先需要先配置好jenkins的基本配置(jdk.maven--),可在系统管理-->>全局工具配置中进行配置. 配 ...

  5. IDEA远程快速部署SpringBoot项目到Docker环境

    一:基础准备 1.首先在linux服务器安装Docker环境,具体安装步骤及Docker使用参考官网或网络资料(这里重点是快速部署项目到Docker环境) 2.配置Docker远程连接端口 1.vim ...

  6. 部署Springboot项目到Linux云服务器

    前言 环境:IDEA.Springboot.Maven(自己电脑安装的Maven) 一.打包jar包 检查自己的pom.xml文件下面有无Maven的依赖插件,即有无如下: <build> ...

  7. springboot项目命linux环境下命令启动

    测试环境:dev nohup java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 \-Dcom.s ...

  8. springboot项目使用idea开启远程调试

    远程调试是调试服务器的有效手段,远程服务器运行的应用可以在本地代码中打断点调试,能让开发人员准确定位服务器上的问题. 一.开启远程调试前提:本地代码与服务器代码一致, 二.开启远程调试步骤 1.开发工 ...

  9. mac和linux下使用Docker,部署SpringBoot项目到docker

    主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...

随机推荐

  1. springboot连接mysql报错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException

    nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. ...

  2. html+css+js实现简单登陆注册页面

    先看一下最终效果,登陆和注册 背景图片: 附源码: login.html <!DOCTYPE html> <html lang="en"> <head ...

  3. spring-第八篇之容器中的bean的生命周期

    1.容器中的bean的生命周期 spring容器可以管理singleton作用域的bean的生命周期,包括bean何时被创建.何时初始化完成.何时被销毁.客户端代码不能控制该类型bean的销毁.spr ...

  4. python开发之路-day02

    一.数据类型 1 什么是数据? name='sunkedong'#字符串类型 age=24 #整型 date=2017.9#浮点型 dic={'name':'sunkedong','age':16}# ...

  5. 19、NumPy——线性代数

    NumPy 线性代数 NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明: 函数 描述 dot 两个数组的点积,即元素对应相乘. vdot 两个向量的 ...

  6. UVAlive 6756 Increasing Shortest Path

    We all love short and direct problems, it is easier to write, read and understand the problem statem ...

  7. python学习第二十六天非固定参数几种情况

    python函数参数传递,位置参数,默认参数,关键词参数,最后介绍一个非固定参数,就可以向函数传递一个列表,元组,字典,具体看看用法 1,有一个* 号的参数情况 def goos_stu(id,*us ...

  8. centos7 nginx完整支持thinkphp pathinfo模式开启方法

    thinkphp运行在linux+nginx,如何开启pathinfo模式,我是完整测试过了,没问题的,在thinkphp配置文件 开启    'URL_MODEL'   =>  1,   1代 ...

  9. II play with GG

    https://ac.nowcoder.com/acm/contest/338/I 题解:首先轮到出手的时候如果在(0,0)上肯定是输的,而(0,1)(1,0)(0,2)(2,0)(1,1)肯定是赢的 ...

  10. linux性能相关的各个环节