返回顶部
分享到

Ubuntu安装jenkins完成自动化构建过程

linux 来源:互联网 作者:佚名 发布时间:2025-12-01 22:02:28 人浏览
摘要

Jenkins自动构建部署流程通过git拉取代码,然后用maven打包成jar包,然后通过docker完成项目部署。这里的服务器需要安装jdk(openjdk也行),maven,git,docker,mysql,其他中间件(redis,mq等)。

Jenkins自动构建部署流程通过git拉取代码,然后用maven打包成jar包,然后通过docker完成项目部署。这里的服务器需要安装jdk(openjdk也行),maven,git,docker,mysql,其他中间件(redis,mq等)。

1.maven安装

Ubuntu的包管理工具是apt,不同操作系统的包管理工具不同,这里使用对应的管理工具进行安装,我这里是Ubuntu,使用apt

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# 1. 更新包索引

sudo apt update

# 2. 安装maven

sudo apt install maven

# 3. 验证是否安装成功

mvn -version

# 4. 环境变量配置

export MAVEN_HOME=/usr/share/maven

export PATH=${MAVEN_HOME}/bin:${PATH}

# 5. 环境变量更新

source ~/.bashrc

# 6.验证环境变量是否配置成功

echo MAVEN_HOME

echo PATH

## 看到输出东西就证明成功了

2. jenkins安装

这里我的安装过程有点崎岖,我这就放两种方式吧。但是前提都是确保你的服务器安装了jdk或者openjdk

(1)apt方式安装

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# 1. 更新包索引

sudo apt update

# 2. 添加jenkins GPG密钥

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

# 进行第二步的时候可能报错 “gpg: no valid OpenPGP data found” ,是wget命令版本过旧问题,这里用下面命令即可

wget --no-check-certificate -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

# 3. 将jenkins存储库添加到系统

sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

# 4. 更新包索引

sudo apt update

# 5. 安装jenkins

sudo apt install jenkins

# 6. 启动jenkins

sudo systemctl start jenkins

## 启动jenkins后可以使用下面命令查看

sudo systemctl status jenkins # 查看运行状态

lsof -i:8080 # jenkins默认端口是8080,查看端口运行状态

(2)war包方式

我这里使用前面的apt方式,安装jenkins一直失败不成功,解决一个问题又有新的问题,这里我又通过war包方式安装(这里我也不知道这个方式需不需要基于前面的步骤,我这直接下载war后,就成功了)

1

2

3

4

5

6

7

8

# 1. 下载jenkins的war包

# 1.1 这是下载最新版的jenkins,但是最新版的jenkins需要jdk11以上版本

wget http://updates.jenkins-ci.org/latest/jenkins.war

# 1.2 我这里是jdk8版本,所以下载2.346版本的jenkins

wget https://get.jenkins.io/war-stable/2.346/jenkins.war

# 2. 到war包目录下,启动war包就行了,使用java -jar

nohup java -jar jenkins.war > jenkins.log &

## 这里使用nohup + & 后台启动war包,将jenkins日志输出到jenkins.log中

(3)jenkins启动

启动jenkins后,可以通过lsof命令查看端口占用来看jenkins是否启动成功,启动成功后,日志会有个密码,初次登陆jenkins使用这个密码。

登陆成功后,安装推荐插件

首次安装,可能会像我这样出现很多错误,这是由于网络原因,我们给jenkins配置一个国内镜像重启一下就行了。

找到配置文件的位置,使用文本编辑器修改配置文件的镜像

1

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

进入这个界面,jenkins就安装完成了。

3.jenkins配置完成自动化 构建

新建任务,选择构建一个maven项目

在源码管理填入自己的git仓库地址,然后在下面选择账号,新安装的Jenkins没有账号,这里可以新增一个(注意:这里填的git账号需要保证可以拉取到这个git项目)

选择执行shell脚本,输入需要执行的shell

1

2

3

4

5

6

7

# $WORKSPACE这个会自动找到Jenkins的工作目录

ls $WORKSPACE/target

# 我这里将Jenkins目录下打包的项目jar包,复制到制定目录并重命名为demo.jar

cp $WORKSPACE/target/rabbitmq.jar /data/rabbimq/demo.jar

# 切换到jar所在目录,然后执行目录下的start.sh脚本

cd /data/rabbimq

sh start.sh

这里看一下jar所在目录下的文件

Dockerfile为构建docker镜像使用

1

2

3

4

5

FROM openjdk:8-jre

WORKDIR /

ADD /demo.jar /demo.jar

EXPOSE 9000

ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","demo.jar"]

start.sh作用:

创建需要的相关路径,停止容器,删除容器,删除镜像,重新构建镜像,启动项目,具体如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

# 定义变量(后面通过$变量名使用)

dir=/data/rabbimq

name=demo

logs=/data/rabbimq/logs

port=9000

temp=/data/rabbimq/temp

if [ ! -d "$dir" ];then

  mkdir -p $dir

else

  echo "文件夹已经存在"

fi

if [ ! -d "$logs" ];then

  mkdir -p $logs

fi

date=`date +%Y%m%d%H%M%S`

# 停止容器(按照容器id停止)

docker stop `docker ps -a|grep $name|awk '{print $1}'`

# 删除容器(按照容器id删除)

docker rm `docker ps -a|grep $name|awk '{print $1}'`

# 删除镜像

docker rmi `docker images|grep $name|awk '{print $1}'`:`docker images|grep $name|awk '{print $2}'`

# 构建镜像(名称为名字加当前时间,可以防止镜像名称重复)

docker build -t $name:$date .

# 启动镜像,挂载需要的目录

docker run -itd -p $port:$port -v $logs:/logs -v $temp:/temp --name $name $name:$date  bash

这些做完后,点击立即构建就可以完成Jenkins自动构建部署了。

4.测试

编写一个测试接口

1

2

3

4

5

6

7

8

9

10

11

@Api(tags = "jenkins测试")

@RestController

@RequestMapping("/test/jenkins")

public class JenkinsTest {

 

    @GetMapping("/print")

    @ApiOperation("输出")

    public Result test(@RequestParam String text) {

        return Result.success("Jenkins接收到参数:" + text);

    }

}

提交到git

点击立即构建,等待完成,查看构建日志,可以看到是拉取到的我刚刚提交的最新代码。

完成后,访问我的swagger地址,可以看到刚刚新写的接口已经部署上去了,为最新的代码,查看服务器docker容器,也正在运行,到此就说明成功。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 常用的Linux测速脚本和命令
    1. 使用常用测速脚本 1.1 Speedtest CLI Speedtest.net 提供的官方命令行工具,适合测试服务器的上下行带宽和延迟。 安装 Speedtest CLI 下载并安装
  • Ubuntu安装jenkins完成自动化构建过程

    Ubuntu安装jenkins完成自动化构建过程
    Jenkins自动构建部署流程通过git拉取代码,然后用maven打包成jar包,然后通过docker完成项目部署。这里的服务器需要安装jdk(openjdk也行),
  • Linux join命令的使用及说明
    一. 基本语法 join 是 Linux 中用于按字段将两个文件进行连接的命令,功能类似 SQL 的 JOIN。 要求两个文件按 用于匹配的字段排序好,一定要
  • Centos 7配置国内yum源的教程

    Centos 7配置国内yum源的教程
    鉴于 CentOS 7 已结束官方支持(EOL),但许多生产环境仍在使用 CentOS 7 或更旧版本。为此,需切换至国内镜像源以确保正常使用。本文将详细
  • Linux中的HTTPS协议原理

    Linux中的HTTPS协议原理
    不是有了HTTP了吗??为什么还要有HTTPS呢?? HTTPS也是一个应用层协议,是在HTTP协议的基础上引入的一个加密层,他的产生是由于HTTP协议内
  • Apache Ignite缓存基本操作实例
    这段内容主要讲解了Apache Ignite中缓存(IgniteCache)的基本操作,包括获取缓存、创建缓存、销毁缓存、执行原子操作以及异步操作等。下面
  • K8s使用kubectl访问api-server失败,node“XXX“ not foun

    K8s使用kubectl访问api-server失败,node“XXX“ not foun
    K8s 使用 kubectl 访问 api-server 失败,报错node XXX not found。本文提供一种解决思路。 解决步骤 (1)使用 kubectl 1 kubectl get node The connection to th
  • Linux线程之线程的创建、属性、回收、退出、取消

    Linux线程之线程的创建、属性、回收、退出、取消
    1. 线程号 进程号在系统中唯一,但线程号只在其所属进程环境中有效。 (1)pthread_self函数 1 2 3 4 5 6 7 8 9 #includepthread.h pthread_t pthread_self(v
  • Linux journal日志大小限制与管理
    Linux journal 日志大小限制与管理详解 在使用基于systemd的 Linux 系统时,日志系统默认采用journald来管理系统日志。相比传统的rsyslog或syslog,
  • linux服务之.service文件使用及说明
    .service文件是 Linux 系统中systemd服务管理器的配置文件,用于定义如何启动、管理和监控系统服务(如后台程序、守护进程等)。以下是它的
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计