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

  • 相关阅读:
    uva 10369 Arctic Network
    uvalive 5834 Genghis Khan The Conqueror
    uvalive 4848 Tour Belt
    uvalive 4960 Sensor Network
    codeforces 798c Mike And Gcd Problem
    codeforces 796c Bank Hacking
    codeforces 768c Jon Snow And His Favourite Number
    hdu 1114 Piggy-Bank
    poj 1276 Cash Machine
    bzoj 2423 最长公共子序列
  • 原文地址:https://www.cnblogs.com/seanRay/p/15126859.html
Copyright © 2011-2022 走看看