DevOps(devops/k8s/docker/Linux)学习笔记-3
09-Jenkins实现基础CI操作
此章节的主要目的:首先将“新建的项目(mytest)” push到 Gitlab上,然后通过Jenkins拉取Gitlab中mytest项目代码到Jenkins本地,再通过Jenkins把mytest项目通过maven构建成jar包,最后将构建的jar发布到目标服务器的过程。

1、将 mytest 项目拉取到 Jenkins本地
打开Idea创建 mytest 项目





启动之后,在流程器中访问 http://localhost:8080/test

打开 Gitlab ,创建一个项目




打开 Idea软件,在Idea中的 terminal 中输入如下内容:
git config --global usr.name "administrator"
git config --global usr.email "admin@example.com"

创建本地仓库

提交代码到 gitlab中


把代码 push到 http://192.168.11.101:8929/root/mytest.git 中


打开 Jenkins 创建一个任务,主要是把 gitlab中的mytest项目与 Jenkins 进行绑定



点击【save】之后,打开如下页面,只需要点击“Build Now”,就会把代码从Git中把代码拉取到Jenkins本地

点击“Console Output”,可以查看日志

这里可以看到 Git执行的一些命令

为了确定 mytest 项目的代码是否已经放入到 Jenkins本地,我们可以进入Jenkins容器里进行查看,

Jenkins中的所有工程都会放到 workspace中。

切换到 workspace中,可以看到 mytest 项目,证明已经把mytest拉取到 Jenkins本地。

2、将Jenkins本地mytest项目,通过 Maven将项目构建成一个Jar包

打开在Jenkins工程中的 Configure 配置


Maven Version中的 maven 是之前创建的,点击【apply】按钮即可。

点击【apply】按钮之后,将跳转到如下页面,点击“ Build Now”之后,将执行构建操作。

构建完成之后,我们进入docker中的 Jenkins, cd到 /workspace/mytest目录,发现已经多了一个 target目录,再进入到 target目录中,发现 mytest-0.0.1-SNAPSHOT.jar已经构建好了

3、将 Jar包push到目标服务器


“Send build artfacts over SSH”为之前连接目标服务器的插件

将 target/*.jar推送到 test服务器中

点击【Save】按钮之后,点击“Build Now”即可。

检查 jar 是否已经push到目标服务器中,如下为之前配置的目录服务器信息。

现在我们就进入 192.168.11.101服务器的 /usr/local/test就会多了一个 target目录,这就证明已经成功了。

4、将目标服务中的jar包,部署到docker容器中,并运行起来

如果要以docker形式运行,首先要将当前的镜像生产一个自定义的镜像,dokcer像生成一个自定义的镜像,就需要增加 Dockerfile文件,我们在mytest项目中新建一个 Dockerfile文件,并在pom.xml文件中的build节点中,增加 <finalName>mytest</finalName> 内容。

Dockerfile文件的内容如下:

为了方便管理,新建 docker-compose.yml文件,并提交到 Git 仓库。

打开Jenkins之后,点击【Build Now】重新构建

进入到 docker容器,查看 刚刚提交的Dockerfile和docker-compose.yml是否已经push到Jenkins本地了

在Configure中追加构建定义镜像和执行的脚本


这里可能会出现端口冲突,可以将端口更改为 8081

修改文件之后,将文件上次到Gitlab中,再进入 Jenkins平台点击【Bulid New】。

构建成功之后,登录到linux系统,通过 docker ps 命令,查看mytest是否已经运行成功了

访问: http://192.168.11.102:8081/test

这就把 CI 操作完成了

提醒:docker image prune -f 为删除为空的镜像


