zoukankan      html  css  js  c++  java
  • Jenkins +Docker+Git 实现自动部署

    Jenkins +Docker+Git 实现自动部署

    实现原理:

    image-20210810171900200

    1.Docker安装Jenkins

    1. 运行Jenkins,如果没有jenkins镜像,回去自动下载

    docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
    

    2. 访问jenkins (使用8080端口)

    docker把Jenkins容器运行起来后就可以访问Jemkins咯

    image-20210810190144679

    管理员密码在运行Jenkins的时候会打印出来,如下图

    image-20210810190305829

    如果找不到密码的话也可以去/var/jenkins_home/secrets/initialAdminPassword文件夹下找到

    docker ps #查询运行的容器
    docker exec -it 1e89f679ced9 cat /var/jenkins_home/secrets/initialAdminPassword
    

    image-20210810190722699

    输入密码后,点击“安装推荐的插件”

    image-20210810191941757

    等待插件安装完毕后,创建一个管理员的用户名和密码

    image-20210810192151869

    然后点击保存,到此Jenkins就搭建完毕,下面开始对jenkins进行设置

    image-20210810192246336

    2.配置Jenkins

    1.JDK环境安装

    进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址

    #1e89f679ced9是Jenkins运行的容器id,使用docker ps查看
    docker exec -it 1e89f679ced9 echo $JAVA_HOME
    

    image-20210810192851450

    进入Jekins页面后,找到全局配置工具

    image-20210810192958650

    填入查询出来的JDK路径

    image-20210810193206467

    2.Manven环境安装

    image-20210810193346566

    设置好了点击apply保存

    3. 安装Jenkins对应Maven插件

    找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本 ,插件名称 Maven Integration

    image-20210810193544252

    image-20210810193702411

    3.Jenkins实现Springboot项目自动部署

    1.新创建一个任务

    image-20210810194049531

    2.配置Git

    image-20210810194924265

    项目打包配置

    image-20210810195124828

    配置脚本

    image-20210810195354436

    #!/bin/bash
    # #!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。
    #bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...
    # #!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。
    
    #服务名称
    
    SERVER_NAME=group4_springboot
    
    #源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包 可移动到Tomcat的。
    JAR_NAME=group4-0.0.1-SNAPSHOT#要和idea中生成的jar名相同
    
    
    #target打包生成jar包的目录
    
    JAR_PATH=/var/jenkins_home/workspace/group4_springboot/target    # 以具体的打包位置为准,可以先构建一次项目,通过日志查看打包的目录
    
    #打包完成之后,把iar包移动到运行jar包的目录
    JAR_WORK_PATH=/var/jenkins_home/workspace/group4_springboot/target
    
    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
    echo"复 制jar包完成"
    cd $JAR_WORK_PATH
    #修改文件权限
    chmod 755 $JAR_NAME.jar
    
    #前台启动
    #java -jar $JAR_NAME.jar
    
    #后台启动
    BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &
    

    点击保存应用,到此为止,jenkins可以帮我们打包部署,但是还不能实现往git上推送代码后自动打包、部署

    3.配置Gitee的WebHooks

    在Jenkins上需要安装gitee插件、publish over ssh插件

    image-20210810200355834

    安装好gitee插件后才会有Gitee webhook触发构建

    image-20210810201101359

    image-20210810200529305

    Gitee设置webHook

    找到你发布到gitee上的项目,按照下图设置

    image-20210810200649170

    添加webHook

    image-20210810201003687

    点击“添加”,如下图表示设置成功,就可以实现gitee代码有推送的话,Jenkins会自动打包部署

    image-20210810201335439

  • 相关阅读:
    WCF 第三章 信道
    WCF 第三章 信道形状
    对单表数据生成insert语句
    WCF 第二章 契约 定义类的层次结构
    WCF 第三章 信道 总结
    Win32类型和.net类型的对应表
    用一条SQL语句实现斐波那契数列
    WCF 第一章 基础 为一个ASMX服务实现一个WCF客户端
    WCF 第二章 契约 数据契约版本
    WCF 第二章 契约 异步访问服务操作
  • 原文地址:https://www.cnblogs.com/seanRay/p/15126859.html
Copyright © 2011-2022 走看看