Linux系统环境基于Docker搭建Jenkins实战

关于CI,CD&CD

CI->Continuous Integration:持续集成

CD->Continuous Delivery:持续交付

CD->Continuous Deployment:持续部署

Jenkins

Linux系统环境基于Docker搭建Jenkins实战_第1张图片

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

Jenkins部署方式

  • 1.基于独立应用程序部署[Jenkins]

  • 2.基于传统服务容器部署[Tomcat+Jenkins]

  • 3.基于虚拟容器服务部署[Docker+Jenkins]

    docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins

    ⚠️[注意事项]:经过实战推荐在Docker部署Jenkins,相对于其它方式,运行稳定可靠。

  • SSH Server配置 Linux系统环境基于Docker搭建Jenkins实战_第2张图片

  • 服务端[Server]程序部署配置: Linux系统环境基于Docker搭建Jenkins实战_第3张图片

    #!/bin/bash
    #当jenkins进程结束后新开的tomcat进程不被杀死
    BUILD_ID=DONTKILLME
    #加载变量
    . /etc/profile
    #配置Jenkins工作空间[JENKINS_WORKSPACE]
    export JENKINS_WORKSPACE=/var/jenkins_home/workspace/shaker-base-service-center-test
    #进入Jenkins工作空间 
    cd $JENKINS_WORKSPACE
    #授权配置Jenkins工作空间[chmod -R 777 JENKINS_WORKSPACE]
    chmod -R 777 $JENKINS_WORKSPACE
    #执行Maven构建项目
    mvn clean install -U -P test

    Linux系统环境基于Docker搭建Jenkins实战_第4张图片 Linux系统环境基于Docker搭建Jenkins实战_第5张图片

    #!/bin/bash
    #当jenkins进程结束后新开的tomcat进程不被杀死
    BUILD_ID=DONTKILLME
    #加载变量
    . /etc/profile
    #配置运行参数
    #配置目标服务主机Jenkins工作空间[jenkins打包上传的root目录]
    export JENKINS_WORKSPACE=/home/shaker_media/test
    #配置tomcat所在目录
    export TOMCAT_APP_PATH=/home/shaker_test/base-center
    chmod -R 777 $JENKINS_WORKSPACE
    ### base 函数
    killTomcat()
    {
      pid=`ps -ef | grep -w "base-service-center" | grep -v 'grep\|tail\|less\|more'| awk '{print $2}'` 
      echo "pid=" $pid
      if [ "$pid" != "" ] ; then
          kill -9 $pid
          rm -f /opt/testtomcat/pid
      else 
          rm -f /opt/testtomcat/pid
      fi
    }
    

停止tomcat

killTomcat

删除原有工程

rm -f $TOMCAT_APP_PATH/base-service-center.jar

复制新的工程到tomcat上

cp $JENKINS_WORKSPACE/base-service-center.jar $TOMCAT_APP_PATH/

启动Tomcat

cd $TOMCAT_APP_PATH nohup java -jar -Ddubbo.protocol.port=58080 -Xms512m -Xmx512m -Xmn256m base-service-center.jar --port=28080 >logs/base-service-center.log 2>&1 &


* 后台Web页面[Client]部署:
![JdQHDH.png](https://img-blog.csdnimg.cn/20200901005708617.png)
```bash
#!/bin/bash
#当jenkins进程结束后新开的tomcat进程不被杀死
BUILD_ID=DONTKILLME
#加载变量
. /etc/profile
#配置Jenkins工作空间[JENKINS_WORKSPACE]
export JENKINS_WORKSPACE=/var/jenkins_home/workspace/shaker-mobile-web-perview
#进入Jenkins工作空间 
cd $JENKINS_WORKSPACE
#授权配置Jenkins工作空间[chmod -R 777 JENKINS_WORKSPACE]
chmod -R 777 $JENKINS_WORKSPACE
#执行Maven构建项目
mvn clean install -U -P test

Linux系统环境基于Docker搭建Jenkins实战_第6张图片

#!/bin/bash
#当jenkins进程结束后新开的tomcat进程不被杀死
BUILD_ID=DONTKILLME
#加载变量
. /etc/profile
#配置运行参数

#配置tomcat所在目录
export TOMCAT_APP_PATH=/home/shaker_media/mobile-web
#配置目标服务主机Jenkins工作空间
export JENKINS_WORKSPACE=/home/shaker_media/preview
chmod -R 777 $JENKINS_WORKSPACE
#定义目标环境变量
export  ENV_TARGET=mobile-web-preview

### base 函数
killTomcat()
{
    pid=`ps -ef | grep -w "$ENV_TARGET" | grep -v 'grep\|tail\|less\|more'| awk '{print $2}'` 
    echo "pid=" $pid
    if [ "$pid" != "" ] ; then
        kill -9 $pid
        rm -f /opt/testtomcat/pid
    else 
        rm -f /opt/testtomcat/pid
    fi
}

# 停tomcat
killTomcat

# 删除原有工程
rm -f $TOMCAT_APP_PATH/$ENV_TARGET.jar

# 复制新的工程到tomcat上
cp $JENKINS_WORKSPACE/mobile-web.jar $TOMCAT_APP_PATH/

# 启动Tomcat
cd $TOMCAT_APP_PATH

#修改项目目标名称
cp mobile-web.jar  $ENV_TARGET.jar

#启动项目部署
nohup java -jar -verbose:gc -Xms512m -Xmx512m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m $ENV_TARGET.jar --port=8009 >logs/$ENV_TARGET.log 2>&1 &

# 删除原始工程
rm -f $TOMCAT_APP_PATH/mobile-web.jar
  • 前端页面[Html]部署:
  1. 视图通用配置: Linux系统环境基于Docker搭建Jenkins实战_第7张图片

2.Source Code Management Linux系统环境基于Docker搭建Jenkins实战_第8张图片

3.Build构建 Linux系统环境基于Docker搭建Jenkins实战_第9张图片

#!/bin/bash
#当jenkins进程结束后新开的tomcat进程不被杀死
BUILD_ID=DONTKILLME
#加载变量
. /etc/profile
#配置运行参数
export JENKINS_WORKSPACE=/var/lib/jenkins/workspace/shaker-manager-ui-test

cd $JENKINS_WORKSPACE
#git remote set-url origin [email protected]:tvplazaOne/2019WORK.git
#git pull origin dev
# 删除压缩包
if [ ! -d "tar" ];then
    mkdir ../tar
fi

rm -rf shaker-manager-ui-test.tar.gz
rm -rf ../tar/shaker-manager-ui-test.tar.gz
# 压缩
tar -zcvf ../tar/shaker-manager-ui-test.tar.gz ../shaker-manager-ui-test

cp ../tar/shaker-manager-ui-test.tar.gz ../shaker-manager-ui-test

4.部署 Linux系统环境基于Docker搭建Jenkins实战_第10张图片

#配置运行参数
#配置目标服务主机Jenkins工作空间[jenkins打包上传的root目录]
export JENKINS_WORKSPACE=/home/shaker_media/test
#配置tomcat所在目录
export TOMCAT_APP_PATH=/home/shaker_test
#配置全局Target名称
export TARGET_NAME=shaker-manager-ui-test

cd $JENKINS_WORKSPACE

#复制文件到目标文件夹
cp $TARGET_NAME.tar.gz  $TOMCAT_APP_PATH

#进入目标文件夹[$TOMCAT_APP_PATH]
cd $TOMCAT_APP_PATH

#解压文件
tar -zvxf $TARGET_NAME.tar.gz

#删除目标历史文件
rm -rf manager

#创建文件夹[manager]
mkdir  manager

# 授权chmod -R 777  manager
chmod -R 777  manager

#更改文件夹名称
mv $TARGET_NAME/*  manager

#删除文件TARGET_NAME
rm -rf $TARGET_NAME

版权声明:本文为博主原创文章,遵循相关版权协议,如若转载或者分享请附上原文出处链接和链接来源。

你可能感兴趣的:(Linux系统环境基于Docker搭建Jenkins实战)