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

逻辑逐光使
• 阅读 1075

关于CI,CD&CD

CI->Continuous Integration:持续集成

CD->Continuous Delivery:持续交付

CD->Continuous Deployment:持续部署

Jenkins

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

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实战

  • 服务端[Server]程序部署配置:

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

#!/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实战
Linux系统环境基于Docker搭建Jenkins实战

#!/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]部署:

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

#!/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实战

#!/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实战

2.Source Code Management
Linux系统环境基于Docker搭建Jenkins实战

3.Build构建
Linux系统环境基于Docker搭建Jenkins实战

#!/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 git@gitee.com: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实战

#配置运行参数
#配置目标服务主机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

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

点赞
收藏
评论区
推荐文章
Tommy744 Tommy744
4年前
针对开发人员的21个Jenkins替代方案
当谈到CI/CD工具时,我们都会提到Jenkins。它是构建和测试项目的超级有效工具,从而使持续不断的轻松集成成为可能。但是,Jenkins并不是唯一的CI/CD工具。我们还有其他很多选择!1.GitLab它是一个开源的Web系统,可用于将持续集成,持续部署应用到你的项目中,而无需任何第三方应用程序。它提供了友好的用户界面以及分布式版本控制
Stella981 Stella981
4年前
CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境
持续集成概述及运行流程:持续集成概述:持续集成(Continuousintegration)持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进行自动化测试 开发→代码编译→测试持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境持续部署:在持续交付的基础上,把部署到
Stella981 Stella981
4年前
GitLab+Rancher实践DevOps【转载】
摘要本文描述使用自建GitLab和Rancher实践持续集成/持续交付流水线的过程,并用Rancher实现容器编排和蓝绿发布。GitLab持续集成GitLab持续集成/持续交付流程图:!image(https://docs.gitlab.com/ee/ci/img/cicd_pipeline_infograp
Stella981 Stella981
4年前
Jenkins+Git+Maven简单教程
关于Jenkins1.什么是JenkinsJenkins是一个可拓展的持续集成(CI)引擎(ContinuousIntegrationEngine)。主要用于:  1.持续、自动地构建、测试软件项目 2.监控一些定时执
Stella981 Stella981
4年前
DevOps简单介绍
jenkins作为测试环境代码发布工具,sonar作为静态代码检查工具,idea作为开发工具,jira作为缺陷管理平台,upstream作为codereview工具(正在研究)。DevOps最近比较火热,但是核心貌似都是jenkinsDevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式
Stella981 Stella981
4年前
DevOps 之 Jenkins 安装、配置、美化、插件及常见错误处理
<divclass"postbodyhaninitcontext"itemprop"articleBody"style"opacity:1;display:block;transform:translateY(0px);"<p继续上一篇的话题,既然已经搭建了GitLab的代码仓库,那么现在就可以开始进行下一步持续集成环境
Stella981 Stella981
4年前
Jenkins入门
CI/CD介绍互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:编码→构建→集成→测试→交付→部署 !(https://oscimg.oschina.net/oscnet/ed05a8a9b9fbf651900f364128b901c16d5.png)正如你在上图中看到,持续集成(C
Stella981 Stella981
4年前
Jenkins安装使用教程
一、说明持续集成:Continuousintegration,CI。包括两层含义,一是指项目的每个开发人员每天都向项目代码仓库要通过git等提交他们的代码,二是指在代码提交后实现自动化的构建、部署、测试确保提交的代码没有错误或及早发现提交代码中的错误。Jenkins是一个使用java开发、开源、免费、强大的web式持续集成应用程序;常用于
芝士年糕 芝士年糕
3年前
Linux安装与卸载Jenkins
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成环境:使用3A服务器搭建的centos71、卸载Jenkins rpm卸载rpmejenkins检查是否卸载成功rpmqljenkins彻底删除残留文件find/inamejenkin
【行云流水线】满足你对工作流编排的一切幻想~skr
流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现持续改进。流水线的
【行云流水线】满足你对工作流编排的一切幻想~skr
流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现持续改进。流水线的
逻辑逐光使
逻辑逐光使
Lv1
山无棱天地合,不服咱俩使劲磕。
文章
4
粉丝
0
获赞
0