jenkins

之前的部署和微服务部署的不同

之前需要在源码进行打包,打成jar包或者war包,在服务器端启动

微服务部署用到了全docker容器的部署

现在是把我们的代码打成一个docker镜像,根据镜像启动服务。

好处是开发的时候打的是镜像,测试的时候打的是镜像,部署的时候打的是镜像。就没有环境的问题了,所有东西都能保持一致。

什么是dockerFile?

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像

1、对于开发人员:可以为开发团队提供一个完全一致的开发环境;

2、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新
的镜像开始工作了;

3、对于运维人员:在部署时,可以实现应用的无缝移植。

编写dockerFile

#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

构建镜像

// jdk1.8 为镜像的名字
// . 为当前目录下的资源

// 构建该镜像需要提前准备所需要的jdk1.8和centos7基础镜像
docker build -t='jdk1.8' .

什么是持续集成

持续集成 Continuous integration ,简称CI

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。

尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能在不断变化的需求中快速适应和保证软件的质量也 显得尤其的重要。

持续集成正是针对这一类问题的一种软件开发实践。
它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开 发内聚的软件。

持续集成的特点

  1. 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果 记录、测试统计等都是 自动完成的,无需人工干预;

  2. 需要有专门的集成服务器来执行集成构建;

  3. 需要有代码托管工具支持

持续集成的作用

  1. 保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
  2. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复 过程以节省时间、费用和工作量;

Gos

Gogs 是一款极易搭建的自助 Git 服务

Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

搭建Gos

docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data --privileged=true gogs/gogs

// 访问地址
http://123.57.238.140:3000/install
// 进去的界面,需要配置数据库,可以直接选SQLite,就不需要配置了
// 需要把 域名 和 应用URL 换成服务器的
// 安装之后,没有默认的账密,需要自己注册一个

使用Jenkins实现持续集成

持续集成,根据代码生成镜像

Jenkins市场占有率超过百分之五十,第二名只有百分之十。

Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的 软件工具。

Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图 表的形式形象地展示项目构建的趋势和稳定性。

特点

  1. 易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额 外的安装,更无需安装数据库;
  2. 易配置:提供友好的GUI配置界面;
  3. 变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并 输出到编译输出信息中;
  4. 支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是 永久链接地址,因此,你可以在各种文档中直接使用该链接;
  5. 集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据 我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程 中,干别的事情);
  6. JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
  7. 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
  8. 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使 用了哪个版本的jars文件等构建记录;
  9. 支持第三方插件:使得 Jenkins 变得越来越强大

安装jenkins

// jdk rpm包需要从网上下载,然后上传到服务器
rpm -ivh jdk-8u171-linux-x64.rpm

// 接下来参照官网,很简单
// vi /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_PORT="8888"

systemctl start jenkins

// 安装git
yum install git

// 需要安装所有插件

// 在进入首页面之前安装完所有插件之后,在登录进来还需要安装maven插件

系统设置 - 插件设置 - 可安装插件 - Maven Integration

// 配置maven 下载maven tar包到服务器,然后解压
// 配置 maven 本地仓库 和 插件
<localRepository>/usr/local/apache-maven-3.3.9/repository</localRepository>

<pluginGroup>com.spotify</pluginGroup>

// maven仓库需要使用项目所使用的仓库

// jenkins全局配置
// 配置jdk路径
/usr/java/jdk1.8.0_171-amd64

// 配置maven路径
/usr/local/apache-maven-3.8.4

创建任务

需要配置的有

# git 仓库地址
http://ip:port/root/tensquare.git

# pom
tensquare_eureka/pom.xml

# Goals and options
clean package docker:build -DpushImage
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值