jenkins持续集成 自动化部署

news2025/1/16 11:01:11

一、环境准备

1.1 Java环境

(1)安装jdk1.8

yum -y install java-1.8.0-openjdk*

(2)执行以下命令查看是否安装成功

java -version

1.2 安装maven

(1)将安装包上传到Linux服务器,解压缩

tar -zxvf apache-maven-3.6.1-bin.tar.gz

(2)进入maven安装目录,创建仓库存储目录

cd /usr/local/maven/apache-maven-3.8.5/

mkdir ck
(3)进入cd conf目录,编辑 vi settings.xml文件,找到localRepository下面复制一行加上/usr/local/apache-maven-3.6.3/ck

/usr/local/apache-maven-3.6.3/ck

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

(4)配置maven环境变量,编辑:vi /etc/profile 文件,翻到最后一行加上

export MAVEN_HOME=/usr/local/maven-3.8.6 export
PATH= M A V E N H O M E / b i n : MAVEN_HOME/bin: MAVENHOME/bin:PATH

如果配置文件有问题,重新加载之后会导致很多命令无法使用。
解决方案:(命令行输入)

export PATH=/bin:/usr/bin:$PATH source /etc/profile

(5)重新加载一下,source /etc/profile 使新增配置生效,如下:

source /etc/profil

(6)到此以安装完成,测试一下,输入命令:mvn -v

1.3 安装Git

yum -y install git

1.4 安装docker

(1)安装必要的一些系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

(2)添加软件源信息

yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3)更新并安装Docker-CE

centos7下:yum makecache fast
centos8下: dnf makecache yum -y install
docker-ce

(4)开启Docker服务

service docker start

(5)测试是否安装成功

docker -v

1.5 安装jenkins

(1)将jenkins.war上传到服务器
https://www.jenkins.io/download/

(2)启动

nohup java -jar /usr/local/jenkins/jenkins.war

/usr/local/jenkins/jenkins.out &

点两次回车
(3)访问
http://ip:8080
在这里插入图片描述

在linux控制台输入命令:

cat /root/.jenkins/secrets/initialAdminPassword
在这里插入图片描述
接下来:
注意:先不要下载插件,先配置国内镜像!
在这里插入图片描述

官方下载插件慢 更新下载地址
cd /root/.jenkins/updates #进入更新配置位置
在这里插入图片描述

sed -i ‘s/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g’ default.json && sed -i ‘s/http://www.google.com/https://www.baidu.com/g’ default.json
在这里插入图片描述

重启jenkins,选择安装推荐的插件
在这里插入图片描述

最后,安装完成
在这里插入图片描述

jenkins环境配置
(1)Jenkins管理控制台,点击manage jenkins;
在这里插入图片描述

(2)点击全局工具配置
在这里插入图片描述

1、配置jdk环境
在这里插入图片描述

2、配置maven环境
在这里插入图片描述

3、配置Git环境
在这里插入图片描述

二、jenkins自动化过程

(1)添加docker文件

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/jenkinsDemo-0.0.1-SNAPSHOT.jar demojenkins.jar
ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]

(2)修改pom文件,添加项目打包类型和添加maven插件

在这里插入图片描述

在这里插入图片描述

(3)将项目托管到git代码平台(gitee或github)

在这里插入图片描述

切换分支
在这里插入图片描述

(4)在jenkins管理界面创建自动化任务

管理界面新建item
在这里插入图片描述

在这里插入图片描述

(5)执行脚本

在这里插入图片描述

修改docker脚本
在这里插入图片描述

#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./
service_name="demojenkins"
service_prot=8001
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
    echo "exist $SERVER_NAME image,IID=$IID"
    #删除镜像
    docker rmi -f $service_name
    echo "delete $SERVER_NAME image"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
else
    echo "no exist $SERVER_NAME image,build docker"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
    echo "exist $SERVER_NAME container,CID=$CID"
    #停止
    docker stop $service_name
    #删除容器
    docker rm $service_name
else
    echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
#docker logs -f  $service_name

(6)开始构建

先从git上拉去代码,
在这里插入图片描述

这个过程会下载大量依赖,执行shell脚本进行打包
在这里插入图片描述

执行docker脚本,
在这里插入图片描述

最后,
在这里插入图片描述

程序自动打包完成部署,浏览器访问项目对应地址即可。
在这里插入图片描述

浏览器访问:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对笔记本电池的研究

文章目录设计容量&完全充电容量笔记本电池报告显示电池设计与系统电池的全部充电容量之间的差异解释电池损耗正确做法查看笔记本的电池使用报告方法第一步&#xff1a;WinR键输入cmd&#xff0c;打开命令提示符窗口第二步&#xff1a;输入powercfg /batteryreport&#xff…

代码规范-对抗软件复杂度

1、为什么需要代码规范 任何系统性的项目都需要架构设计&#xff0c;而架构设计的核心命题是控制复杂度。 但随着项目的不断迭代&#xff0c;复杂度就会不断上升&#xff0c;研发效率就会不断下降。 而代码规范正是对抗软件复杂度的有效手段&#xff0c;通过约定俗成的规则…

[附源码]计算机毕业设计JAVA户籍管理系统

[附源码]计算机毕业设计JAVA户籍管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis M…

docker安装redis详细教程

1、下载最新redis镜像 docker pull redis //表示拉取最新的镜像 如果要指定版本 docker pull redis:latest//表示拉取最新的镜像 2、创建redis映射目录 mkdir /redisData/redis/conf 配置文件挂载在我指定的redisData/redis/conf/ 文件夹中&#xff0c;方便后续的修改 创建re…

Linux上单机部署RocketMq

Linux上单机部署RocketMq1、安装jdk2、下载rocketmq并解压3、创建日志文件夹4、启动namesrv5、启动broker6、查看和关闭7、rocketmq控制台7.1、控制台idea启动7.2、控制台jar包启动1、安装jdk rocketmq的运行是建立在jdk之上的&#xff0c;所以&#xff0c;我们要搭建rocketmq服…

uView u-slider 自定义滑块

有个需求UI设计的滑动选择器中的滑块如下所示&#xff1a; 项目中集成的是vView2.0组件库&#xff0c;u-slider组件中有 blockStyle 属性&#xff0c;看着是用来设置自定义滑块的。但是试了下&#xff0c;没有效果&#xff0c;不知怎么回事。看了一下uView1.0组件库 u-slider组…

大学生想做兼职应该怎么找,适合大学生的线上线下靠谱兼职推荐

大学生现在有很多兼职工作可以在网上和实体上做。他们可以根据个人能力和喜好进行选择。以下是一些低门槛的在线和离线兼职工作&#xff0c;希望能帮助到你。 线下兼职 1.勤工助学岗位 学校&#xff1a;通过学校提供的勤工俭学岗位&#xff0c;如办公室助理、图书馆助理等&am…

Java 线上机器 CPU 100% 的一次排查过程

文章目录1. 问题发生2. 数据库连接关闭问题排查3. 问题的进一步排查4. 解决方法1. 问题发生 日常敲代码突然收到生产环境异常告警&#xff0c;线上有一台机器 CPU 使用率飙升到 100 触发扩容&#xff0c;工作群里一下子鸡飞狗跳。 出现问题&#xff0c;首先当然是查看监控和日…

如何画架构图?

平时做过一些系统设计&#xff0c;也写过一些系统分析文章&#xff0c;从组件、关系、交互等方面提供一些建议&#xff0c;并用我之前写文章画的一些图举些例子。构成系统的组件通过形状、颜色、名称来逼近其概念。LevelDB 主要构件如上面 LevelDB 的架构图&#xff0c;包含的主…

Redis哨兵(Sentinel)

# Redis哨兵(Sentinel) Redis 的 Sentinel 系统用于管理多个 Redis 服务器&#xff08;instance&#xff09;&#xff0c; 该系统执行以下三个任务&#xff1a; 监控&#xff08;Monitoring&#xff09;&#xff1a; Sentinel 会不断地检查你的主服务器和从服务器是否运作正常…

内核参数 sched_min_granularity_ns 为什么看不到啦?

linux内核从版本v5.13-rc1起&#xff08;含&#xff09;&#xff0c;sysctl 已无法设置 kernel.sched_min_granularity_ns。 其实不止sched_min_granularity_ns&#xff0c;在 /proc/sys/kernel 下&#xff0c;和CPU调度相关的6个参数都不见了&#xff1a; sched_latency_ns …

Unity VR开发教程 OpenXR+XR Interaction Toolkit 2.1.1(七)射线抓取

文章目录&#x1f4d5;教程说明&#x1f4d5;添加射线功能的相关组件&#x1f4d5;设置 Interaction Layer Mask&#x1f4d5;让 XR Direct Interactor 不对 XR Ray Interactor 产生干扰&#x1f4d5;使抓取的物体不会吸到手上&#x1f4d5;远距离抓取时通过摇杆改变抓取物体的…

Node.js安装及环境配置

Node.js安装及环境配置1.下载安装Node.js2.npm安装路径配置3.环境变量配置4.换源5.测试npm安装1.下载安装Node.js Node.js官网 下载如图所示版本&#xff1a;&#xff08;请根据自己的系统环境选择&#xff09; 下载完成后傻瓜式安装即可 测试环境&#xff1a; PS C:\Users…

终于拿到了爆火全网的进一线大厂程序员必看的1700道java面试题

爆火全网的进一线大厂程序员必看的1700道java面试题到底有多牛&#xff1f; 牛不牛不敢说&#xff0c;但是有好多程序员是靠这一套1700道高频面试题&#xff0c;顺利收到很多大厂offer&#xff01; 以至于&#xff0c;到现在为止&#xff0c;大厂都开始按照这一套1700道面试题…

java计算机毕业设计ssm美食视频教学网站element 前后端分离

项目介绍 高校实验室信息管理平台是使用JAVA的SSM技术,MySQL作为数据库开发,用户通过查看实验室信息,在线预约实验室,实现高校实验室信息化管理。首先对本论文进行分析后,提出平台的相关技术,然后整理系统的需求分析,根据需求进行功能和数据库设计,最后进行系统实现和测试 。 …

Redis的Java客户端

目录 1 前言 2 Jedis客户端 2.1 jedis快速入门 2.2Jedis连接池 3 SpringDataRedis 3.1快速入门 3.2ReisTemplate配置序列化工具 3.3 StringRedisTemplate 1 前言 在Redis官网中提供了各种语言的客户端&#xff0c;地址&#xff1a;https://redis.io/resources/clien…

螺栓防松设计

常用的防松方法有三种&#xff1a;摩擦防松、机械防松和永久防松。机械防松和摩擦防松称为可拆卸防松&#xff0c;而永久防松称为不可拆卸防松。常用的永久防松有&#xff1a;点焊、铆接、粘合等&#xff0c;这种方法在拆卸时大多要破坏螺纹紧固件&#xff0c;无法重复使用。常…

系统测试-从研发到测试过程

系统测试是为了发现错误而执行程序的过程&#xff0c;成功的测试是发现了至今尚未发现的错误的测试。目的是在真实系统工作环境下通过与系统的需求定义作比较&#xff0c;检验完整的软件配置项能否和系统正确连接&#xff0c;发现软件与系统/子系统设计文档和软件开发合同规定不…

[Redis] Redis实战--EVAL

✨✨个人主页:沫洺的主页 &#x1f4da;&#x1f4da;系列专栏: &#x1f4d6; JavaWeb专栏&#x1f4d6; JavaSE专栏 &#x1f4d6; Java基础专栏&#x1f4d6;vue3专栏 &#x1f4d6;MyBatis专栏&#x1f4d6;Spring专栏&#x1f4d6;SpringMVC专栏&#x1f4d6;SpringBoot专…

基于移动品台的产品追溯系统设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…