• Jenkins远程部署应用


    系统配置

    Jenkins详细安装步骤:https://blog.csdn.net/qq_37640410/article/details/110921651

    • 点击Manage Jenkins->Configure System(系统配置)在这里插入图片描述
      Publish Over SSH配置在这里插入图片描述
      Passphrase:私钥密码,如果没有可以不填
      Path to key:私钥的位置
      Key:私钥的内容。如果填写了该值,会覆盖Path to key的内容
      SSH Servers:服务器的配置
      • Name:名称(自定义)
      • Hostname:服务器地址
      • Username:用户名
      • Remote Directory:默认远程服务器的地址
    • 全局工具配置
      在这里插入图片描述
      • Maven配置
        在这里插入图片描述
      • Jdk配置
        在这里插入图片描述
      • Maven安装路径
        在这里插入图片描述
        点击"应用" and "保存"按钮。

    项目部署

    • 新建一个任务:名称为:springboot_design_pattern在这里插入图片描述

    • 我的视图-配置

      源码管理
      在这里插入图片描述
      Repository URL:仓库地址
      Credentials:登录凭据,从凭据管理中配置
      Branches to build:所在分支
      构建
      在这里插入图片描述
      执行shell
      在这里插入图片描述
      shell脚本

      #!/bin/bash
      # #!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...
      # #!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。
      
      #服务名称
      
      SERVER_NAME=springboot_design_pattern
      
      #源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包 可移动到Tomcat的。
      JAR_NAME=springboot_design_pattern-${version}
      
      
      #target打包生成jar包的目录
      
      JAR_PATH=/var/lib/jenkins/workspace/springboot_design_pattern/default/target    # 以具体的打包位置为准,可以先构建一次项目,通过日志查看打包的目录
      
      #打包完成之后,把iar包移动到运行jar包的目录
      JAR_WORK_PATH=/var/lib/jenkins/workspace/springboot_design_pattern/default/target/classes
      
      # echo "查询进程id-->$SERVER_NAME"
      # PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
      # echo"得到进程ID: $PID"
      # echo"结束进程"
      # for id in $PID
      # do
      # kill -9 $id
      # echo "killed $id" 
      # done
      # echo"结束进程完成"
      
      #复制jar包到执行目录_
      
      echo" 复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
      cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
      cd $JAR_WORK_PATH
      chmod 755 $JAR_NAME.jar
      
      

      增加构建后操作
      在这里插入图片描述
      Name:远程服务名称,在配置管理-系统配置中Publish Over SSH中
      Source files:打包后的路径
      Remove prefix:移除前缀
      Remote directory远程目录,在系统配置中配置后,不需要再配置
      Exec command 执行的shell命令,在远程机器上

      shell.sh

      o "当前所在位置"
      pwd
      SERVER_NAME=springboot_design_pattern
      #容器id
      CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
      #镜像id
      IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
      #当前日期
      DATE=`date +%Y%m%d`
      
      #清除旧容器
      if [ -n "$CID" ]; then
      echo "存在$SERVER_NAME容器,CID=$CID"
      echo "停止旧容器"
      docker stop $SERVER_NAME
      echo "删除旧容器"
      docker rm $SERVER_NAME
      fi
      
      # 清楚旧镜像
      if [ -n "$IID" ]; then
      echo "存在$SERVER_NAME镜像,IID=$IID"
      echo "删除镜像"
      docker rmi $IID
      fi
      
      mv ./classes/Dockerfile ./
      rm -rf classes/
      
      #构建镜像
      echo "开始构建镜像"
      docker build -f Dockerfile -t $SERVER_NAME:v${DATE} .
      echo "构建镜像成功!"
      
      # 运行docker容器
      echo "创建并启动$SERVER_NAME容器..."
      docker run --name $SERVER_NAME -d -p 8090:8088 $SERVER_NAME:v${DATE}
      echo "$SERVER_NAME容器启动完成"
      echo "删除其他配置信息"
      rm -rf ./Dockerfile ./*.jar
      

      Dockerfile

      FROM java:8
      MAINTAINER zfl zfl_aliases@163.com 2020-12-09
      COPY springboot_design_pattern-1.0-SNAPSHOT.jar app.jar
      EXPOSE 8088
      ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Duser.timezone=GMT+08", "-jar", "/app.jar"]
      

      点击"应用"和"保存"按钮

    项目构建

    点击构建在这里插入图片描述
    查看控制台输出
    在这里插入图片描述
    远程服务器在这里插入图片描述

    充满鲜花的世界到底在哪里
  • 相关阅读:
    ACM-ICPC 2018 徐州赛区网络预赛 Morgana Net
    ACM-ICPC 2018 焦作赛区网络预赛 E. Jiu Yuan Wants to Eat ,树链抛分+线段树
    ACM-ICPC 2018 焦作赛区网络预赛 Poor God Water 矩阵快速幂
    ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge 状压dp
    codeforces 776 D The Door Problem
    codeforces 765 E Tree Folding
    codeforces 765 D Artsem and Saunders
    P2764 最小路径覆盖问题
    SPOJ Count on a tree 主席树+lca
    BZOJ 1066 蜥蜴
  • 原文地址:https://www.cnblogs.com/aliases/p/14333203.html
Copyright © 2020-2023  润新知