• jenkins持续集成 自动化部署


    一、环境准备

    1.1 Java环境

    (1)安装jdk1.8

    yum -y install java-1.8.0-openjdk*

    (2)执行以下命令查看是否安装成功

    java -version

    1.2 安装maven

    (1)将安装包上传到Linux服务器,解压缩

    tar -zxvf apache-maven-3.6.1-bin.tar.gz

    (2)进入maven安装目录,创建仓库存储目录

    cd /usr/local/maven/apache-maven-3.8.5/

    mkdir ck
    (3)进入cd conf目录,编辑 vi settings.xml文件,找到localRepository下面复制一行加上/usr/local/apache-maven-3.6.3/ck

    /usr/local/apache-maven-3.6.3/ck

    <mirror>
      <id>alimavenid>
      <name>aliyun mavenname>
      <url>http://maven.aliyun.com/nexus/content/groups/public/url>
      <mirrorOf>centralmirrorOf>
    mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (4)配置maven环境变量,编辑:vi /etc/profile 文件,翻到最后一行加上

    export MAVEN_HOME=/usr/local/maven-3.8.6 export
    PATH= M A V E N H O M E / b i n : MAVEN_HOME/bin: MAVENHOME/bin:PATH

    如果配置文件有问题,重新加载之后会导致很多命令无法使用。
    解决方案:(命令行输入)

    export PATH=/bin:/usr/bin:$PATH source /etc/profile

    (5)重新加载一下,source /etc/profile 使新增配置生效,如下:

    source /etc/profil

    (6)到此以安装完成,测试一下,输入命令:mvn -v

    1.3 安装Git

    yum -y install git

    1.4 安装docker

    (1)安装必要的一些系统工具

    yum install -y yum-utils device-mapper-persistent-data lvm2

    (2)添加软件源信息

    yum-config-manager --add-repo
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    (3)更新并安装Docker-CE

    centos7下:yum makecache fast
    centos8下: dnf makecache yum -y install
    docker-ce

    (4)开启Docker服务

    service docker start

    (5)测试是否安装成功

    docker -v

    1.5 安装jenkins

    (1)将jenkins.war上传到服务器
    https://www.jenkins.io/download/

    (2)启动

    nohup java -jar /usr/local/jenkins/jenkins.war

    /usr/local/jenkins/jenkins.out &

    点两次回车
    (3)访问
    http://ip:8080
    在这里插入图片描述

    在linux控制台输入命令:

    cat /root/.jenkins/secrets/initialAdminPassword
    在这里插入图片描述
    接下来:
    注意:先不要下载插件,先配置国内镜像!
    在这里插入图片描述

    官方下载插件慢 更新下载地址
    cd /root/.jenkins/updates #进入更新配置位置
    在这里插入图片描述

    sed -i ‘s/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g’ default.json && sed -i ‘s/http://www.google.com/https://www.baidu.com/g’ default.json
    在这里插入图片描述

    重启jenkins,选择安装推荐的插件
    在这里插入图片描述

    最后,安装完成
    在这里插入图片描述

    jenkins环境配置
    (1)Jenkins管理控制台,点击manage jenkins;
    在这里插入图片描述

    (2)点击全局工具配置
    在这里插入图片描述

    1、配置jdk环境
    在这里插入图片描述

    2、配置maven环境
    在这里插入图片描述

    3、配置Git环境
    在这里插入图片描述

    二、jenkins自动化过程

    (1)添加docker文件

    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    COPY ./target/jenkinsDemo-0.0.1-SNAPSHOT.jar demojenkins.jar
    ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]
    
    • 1
    • 2
    • 3
    • 4

    (2)修改pom文件,添加项目打包类型和添加maven插件

    在这里插入图片描述

    在这里插入图片描述

    (3)将项目托管到git代码平台(gitee或github)

    在这里插入图片描述

    切换分支
    在这里插入图片描述

    (4)在jenkins管理界面创建自动化任务

    管理界面新建item
    在这里插入图片描述

    在这里插入图片描述

    (5)执行脚本

    在这里插入图片描述

    修改docker脚本
    在这里插入图片描述

    #!/bin/bash
    #maven打包
    mvn clean package
    echo 'package ok!'
    echo 'build start!'
    cd ./
    service_name="demojenkins"
    service_prot=8001
    #查看镜像id
    IID=$(docker images | grep "$service_name" | awk '{print $3}')
    echo "IID $IID"
    if [ -n "$IID" ]
    then
        echo "exist $SERVER_NAME image,IID=$IID"
        #删除镜像
        docker rmi -f $service_name
        echo "delete $SERVER_NAME image"
        #构建
        docker build -t $service_name .
        echo "build $SERVER_NAME image"
    else
        echo "no exist $SERVER_NAME image,build docker"
        #构建
        docker build -t $service_name .
        echo "build $SERVER_NAME image"
    fi
    #查看容器id
    CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
    echo "CID $CID"
    if [ -n "$CID" ]
    then
        echo "exist $SERVER_NAME container,CID=$CID"
        #停止
        docker stop $service_name
        #删除容器
        docker rm $service_name
    else
        echo "no exist $SERVER_NAME container"
    fi
    #启动
    docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
    #查看启动日志
    #docker logs -f  $service_name
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    (6)开始构建

    先从git上拉去代码,
    在这里插入图片描述

    这个过程会下载大量依赖,执行shell脚本进行打包
    在这里插入图片描述

    执行docker脚本,
    在这里插入图片描述

    最后,
    在这里插入图片描述

    程序自动打包完成部署,浏览器访问项目对应地址即可。
    在这里插入图片描述

    浏览器访问:
    在这里插入图片描述

  • 相关阅读:
    小程序真题合集
    R语言使用order函数对dataframe数据进行排序、基于单个字段(变量)进行降序排序(DESCENDING)
    【硬件相关】RDMA网络类别及基础介绍
    debian 11安装搜狗输入法
    3D生成式AI模型与工具
    VISIO 2013软件和安装教程
    Python库使用笔记—Dataframe
    银行分布式持久化存储系统方案设计
    Ubuntu扩容lvm空间
    HarmonyOS/OpenHarmony应用开发-DevEco Studio新建项目的整体说明
  • 原文地址:https://blog.csdn.net/weixin_42194695/article/details/127935288