基于Docker+Jenkins+GitHub搭建持续集成环境

 

一、为什么做持续集成、怎么做持续集成

搭建持续集成环境的目的,就是为了将部署流程规范化、自动化,节省人力、时间、稳定部署。

下图是Docker+Jenkins+GitHub的基本部署结构图。

  • 开发者提交代码到git
  • jenkins检测到版本更新,触发构建
  • 构建任务:下载代码、maven打包、docker构建镜像、上传镜像库、重启镜像

  下面开始逐步实现:

   使用的服务器系统是centos7

二、部署jenkins

   1、没有jdk的,先安装jdk

yum install java-1.8.0-openjdk.x86_64

   2、下载jenkins和tomcat,解压tomcat

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
tar -zxvf apache-tomcat-8.5.42.tar.gz

    3、把jenkins.war放入tomcat/webapps,启动tomcat

mv jenkins.war apache-tomcat-8.5.42/webapps/
sh apache-tomcat-8.5.42/bin/startup.sh

    4、配置jenkins

      浏览器访问http://x.x.x.x:8080/jenkins,稍等几分钟

 到解锁界面先修改一下配置,防止下一步卡在loding

        (/启动jenkins用户的根目录/.jenkins/updates/default.json  把第一行的google改成baidu,保存)

然后再解锁

使用cat命令,查看红色字体路径的文件内容,在password输入框,输入该内容,点击提交

后面的插件安装可安装,可不安装;初始化用户最好创建一个。

最后到工作界面,就完成了jenkins的安装

三、构建任务-编译打包

1、点击create new jobs创建任务

2、写上名字,选择自由风格,OK

3、在git中,填写github项目的url,点击add,添加凭证(用户名和密码)

4、保存任务后,点击Build Now,构建一次,可以看到下方#1是蓝色,表示从github下载代码成功了。

可以在这里查看日志

5、添加一个编译步骤,写入clean install ,实现maven打包

先安装maven,yum install maven

再运行任务,从日志中,可以看出,打包成功

四、构建任务-构建镜像

添加一个shell步骤

jar包名:demo-0.6.jar ,其中0.6是版本号,先取出版本号,当作后面的镜像版本。

pkname=$(ls target/| grep demo |head -n 1)
vesion=${pkname%.*}
vesion=${vesion#*-}
echo $vesion
#获取版本号

rm Dockerfile
echo "FROM openjdk:latest" >> Dockerfile
echo 'MAINTAINER charle "charle.wenqiang.qq.com"' >> Dockerfile
echo "COPY ./target/demo*.jar /data/demo.jar" >> Dockerfile
echo "ENTRYPOINT java -jar /data/demo.jar" >> Dockerfile
#初始化Dockerfile

docker build -t="charle/demo:$vesion" .
#基于dockerfile构建镜像

 

五、构建任务-上传镜像到仓库

镜像库可以用DockerHub、阿里云、私有库等,这里用的是阿里云。

因为要用到版本号,脚本就写到上个步骤的shell里。

docker login --username=XXXX@qq.com --password=XXXX registry.cn-shenzhen.aliyuncs.com
#登录仓库
docker tag charle/demo:$vesion registry.cn-shenzhen.aliyuncs.com/charlezone/demo:$vesion
docker push registry.cn-shenzhen.aliyuncs.com/charlezone/demo:$vesion
#上传镜像

六、构建任务-更新docker容器

因为要用到版本号,脚本还是写到上上个步骤的shell里。

docker_id=$(docker ps | grep demo| awk '{print $1}')
if [ "$docker_id" != "" ]; then
   docker rm -f $docker_id
fi
#删除上个版本容器

docker run -dit -p 8011:8011 --name demo$vesion registry.cn-shenzhen.aliyuncs.com/charlezone/demo:$vesion
#启动新版本容器

从代码更新,到服务更新就已经完成了。

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值