您现在的位置是:首页 >技术杂谈 >通过部署Java工程学习Jenkins网站首页技术杂谈

通过部署Java工程学习Jenkins

啥时能挣6000块 2024-10-05 00:01:02
简介通过部署Java工程学习Jenkins

今天来学习Jenkins部署应用,在工作中一般都是提交代码到git之后,通过自动打包的功能形成jar包,然后运行jar包。服务器自动从git拉取最新代码进行打jar包的这个过程就通过Jenkins来进行。

Jenkins官网地址

首先我们可以看一下官网的版本

 

我们需要关注这个版本号,他是Jenkins长期支持的最新版本

回到我们的Linux服务器,我是基于docker安装的,没有安装docker的同学可以先安装一下

Docker学习笔记(一)——基本使用

有了docker后,通过如下命令安装Jenkins,注意后面为版本号!

docker pull jenkins/jenkins:2.401.1-lts

之后创建存放关于Jenkins文件的目录

然后创建docker-compose文件

注意,执行docker-compose 命令需要单独下载,下载方式:

# 下载docker-compose 比较慢,需要耐心等待,如果有问题可以私聊我获取
sudo curl -L https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 授予权限
sudo chmod +x /usr/local/bin/docker-compose

# 最后验证是否下载成功
docker-compose -v

下载成功后我们就可以继续进行Jenkins的安装了。

# 编写docker-compose文件
vi docker-compose.yml

# 文件内容为
version: "3.1"
services:
  jenkins:
    image: jenkins/jenkins:2.401.1-lts
    container_name: jenkins
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - /usr/local/docker/docker_jenkins/data/:/var/jenkins_home/

#复制之后Esc   :wq保存退出

# 需要将本地/usr/local/docker/docker_jenkins/data文件夹开启读写权限
chmod -R 777 data

#退出之后通过如下命令将docker-compose运行起来
docker-compose up -d

# 重启
docker-compose restart

# 查看日志
docker logs -f ${文件内容中的container_name}

成功启动后查看日志显示为:

 红色处为初始密码,用于在网站上登录Jenkins

打开浏览器,访问IP:8080地址,即可访问Jenkins

 输入日志中的初始密码。

# 由于Jenkins需要下载大量插件,如果网速较慢,需要更换下载源
# 修改数据卷data文件夹中hudson.model.UpdateCenter.xml

# 原内容---------------------------
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>


# 更换为------------------------------
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
  </site>
</sites>

输入密码后展示此页面

 点击之后会显示需要安装什么插件,直接下一步就可以了,安装他默认的插件,之后我们有需要的插件再单独安装。就算默认的插件下载不下来,我们之后也可以去Jenkins官网进行下载

下载完默认插件之后就会跳转到注册管理员的页面,方便记忆就好。

 管理员注册成功后会展示如下页面,我们直接保存即可。

 登录之后我们需要去下载我们需要的插件

 

 

 我们需要下载如下插件:

1.git parameter

2.Publish Over SSH

选择后点击红框下载

 下载好插件之后我们需要将jdk与maven复制到Jenkins的数据卷中(也就是需要放到我们docker-compose文件中的volumes键值对中冒号前的文件夹中)

 移动到/usr/local/docker/docker_jenkins/data文件夹,中根据jdk与maven的名称,执行如下命令。

mv /usr/local/jdk1.8.0_371/ ./
mv /usr/local/apache-maven-3.9.2/ ./

移动成功后我们进入容器内查看jdk与maven是否存在

# 进入容器
docker exec -it jenkins bash

# 进入根目录
cd ~

确定存在之后我们在Jenkins页面进行全局配置

 

 Maven也是同理

 设置完毕后保存

接下来我们要配置转发访问的目标服务器。

 进入后拉到最下方,可以使用密钥方式访问,也可以通过用户名密码访问,这里使用用户名密码访问。

 

 

 

其中我们要注意 /usr/local/test 文件目录,需要在Linux中有此文件夹!!

最后测试连接

首先我们要创建一个git仓库,与本地代码进行绑定,有需要的小伙伴可以看一下我这篇文章。

Git创建个人远程仓库实操

现在我们需要将Jenkins与Git进行绑定,我们在Jenkins中创建一个任务

 

设置完点击应用保存,保存之后我们就可以进行构建了

查看Jenkins中的代码

# 进入容器
docker exec -it jenkins bash

# 进入用户目录
cd ~

# 进入工作空间
cd workspace/

# 展示目录中文件
ls

# 这里面的文件就是我们的项目代码文件

 接下来我们需要将代码构建成jar包

 

 

 

设置之后我们进行应用保存,然后回到上层页面进行立即构建,此时就会执行拉取代码+打包的动作

我们可以在Jenkins容器中查看jar包

# 进入容器
docker exec -it jenkins bash

# 进入用户目录
cd ~

# 进入工作空间
cd workspace/

# 展示目录中文件
ls

# 进入项目代码
cd 项目名

# 进入包
cd target

 

我们就看到target包了

 打包成功后我们就要推送到docker中,进行启动

我们首先进入配置,对构建后操作进行配置

 

配置成功后,进行应用保存

 之后再次进行构建,就会将jar包推送到我们的服务器中具体会推送到哪里会根据我们设置的service信息来也就是如下图中的Remote Directory

 构建成功后我们就能在对应目录下看到打包后的文件了

 接下来我们要进行将jar包作为一个镜像启动

首先我们要在项目中创建一个dockerfile,不了解的同学可以看一下下面的文章

Docker学习笔记(三)——Dockerfile及数据、网络连通

# docker-compose文件内容,8080端口已经占用,所以改为8081
version: "3.1"
services:
  mytest:
    build:
      context: ./
      dockerfile: Dockerfile
    image: mytest:v1.0.0
    container_name: mytest
    ports:
      - 8081:8080
# Dockerfile文件内容
FROM daocloud.io/library/java:8u40-jdk
COPY mytest.jar /usr/local/
WORKDIR /usr/local
CMD java -jar mytest.jar

pom文件指定包名

 最后将修改提交到git上。

然后我们继续对Jenkins进行构建后处理

额外添加两个构建的内容

 最后我们要输入启动镜像的命令

# 跳转到当前目录
cd /usr/local/test

# 移动target目录下的jar文件到当前目录
mv ./target/*.jar ./

# 停止之前的容器
docker-compose down

# 启动容器
docker-compose up -d --build

# 由于我们迭代启动会有很多历史镜像,名称都会变为none,所以需要此命令进行删除
docker image prune -f

应用并保存

之后我们再次回到上层点击立即构建,就会自动进行从git拉取代码,构建打包,构建镜像,启动容器,我们直接访问即可

此时有一个问题,拉取的代码默认都是master分支,我们需要根据不同环境用不同的分支进行打包,例如测试环境就需要用测试分支,此时我们就需要在构建前进行切换分支的操作

首先我们需要对参数化操作进行勾选

 

 

 

此时,我们整个jenkins服务就基本搭建好了,最近学习时间比较紧张,所以文章记录的比较潦草,所以哪里说的不清楚,有小伙伴有疑问的可以私聊哦

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。