docker搭建Jenkins及基本使用

1. 搭建

  1. 查询镜像

    docker search jenkins
    

    image-20230922100330855

  2. 下载镜像

    docker pull jenkins/jenkins
    

    image-20230922100921628

  3. 启动容器

    #创建文件夹
    mkdir -p /home/jenkins_home
    #权限
    chmod 777 /home/jenkins_home
    #启动Jenkins
    docker run -d -uroot -p 9095:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins
    
    命令描述
    -d后台运行容器,并返回容器ID
    -uroot使用 root 身份进入容器,推荐加上,避免容器内执行某些命令时报权限错误
    -p 9095:8080将容器内8080端口映射至宿主机9095端口,这个是访问jenkins的端口
    -p 50000:50000将容器内50000端口映射至宿主机50000端口
    –name jenkins设置容器名称为jenkins
    -v /home/jenkins_home:/var/jenkins_home:/var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录
    -v /etc/localtime:/etc/localtime让容器使用和服务器同样的时间设置
    jenkins/jenkins镜像的名称,这里也可以写镜像ID
  4. 查看容器日志,获取初始密码

    docker logs jenkins
    

    image-20230922094530388

  5. 在浏览器中输入:http://serverIp:port/访问jenkins,serverIp为docker宿主机的ip,port即为宿主机映射的端口。我的即为:http://127.0.0.1:9095/,输入前一步获取的密码

    image-20230922103121185

  6. 安装推荐的插件

    image-20230922101946574

    推荐插件如下:

    image-20230922105317968

    • 插件下载问题

      因为网络原因,需要将插件源设置为国内的,这样才可以安装插件。进入宿主机目录 /home/jenkins_home/,编辑文件 hudson.model.UpdateCenter.xml

      cd /home/jenkins_home/
      cat hudson.model.UpdateCenter.xml 
      

      image-20230922101059585

      • 将 url 内容修改为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json(清华大学官方镜像)

      • 重启容器

        docker restart jenkins
        
  7. 创建管理员账户

    image-20230922110650606

  8. 配置实例

    image-20230922101151876

    image-20230922103104807

    此处jenkins已经搭建完成了,可以开始使用了

    目前我是Jenkins 2.424,装上就是中文

    image-20230925144930122

3. 构建项目

  1. 新建任务–>构建一个自由风格的软件项目->点击确定

    image-20230925145434552

  2. 选择执行shell

    image-20230925145303140

  3. hello world

    echo 'hello world'
    

    image-20230922110444182

  4. 点击【保存】后,进入项目详情页,点击【立即构建】

    image-20230925145144723

  5. 点击后产生构建记录

    image-20230925150336056

  6. 点击构建记录查看#1构建的控制台输出

    可以看到控制台输出了我们刚才echo的内容。

    image-20230925145523151

  7. 控制台查看

    image-20230925145658111

4. 参数化构建

我们还是使用上一次创建的项目,在配置中勾选【This project is parameterized】

  1. 参数化构建

    这里可以添加布尔参数、选项参数、凭据参数、文件参数、多行文本参数、密码参数、运行参数、字符串参数。

    image-20230925150859196

  2. 模拟添加两个字符串参数

    image-20230925151005960

  3. 并且在Build Steps的执行 shell中使用我们定义的参数,点击【保存】

    echo 'hello world'
    echo ${parameter1}
    echo '--------'
    echo ${parameter2}
    

    image-20230925150556863

  4. Build with Parameter

    此处我们还可以修改参数,如果不修改的话就是默认值

    image-20230925150108074

  5. 构建完成后控制台查看

    image-20230925152126774

5. 部署 SpringBoot

5.1 插件下载

Jenkins 启动成功之后,接下来我们安装三个必要的插件:

  • Maven Integration:Maven 构建工具
  • Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。
  • Gitee:协助使用 Gitee 仓库。

下图位置下载插件

image-20230925174829769

5.2 准备代码

考虑到 GitHub 网络有时候不稳定,我这里使用了 Gitee,一个很简单的 Spring Boot 工程,里边有一个 hello 接口

我的代码仓库地址:https://gitee.com/zhourui815/jenkins_demo

5.3 准备服务器

有服务器的用服务器,也可以用虚拟机,或者windows的wsl(windows子系统),我使用的是windows子系统,只要你的jenkins服务器能够ping通你的服务器.并且需要开启ssh服务

5.4. 配置Java部署环境

  1. 全局工具配置

    image-20230925142950345

  2. 配置JDK

    首先我们来配置 JDK,Jenkins 中默认安装了 JDK,我们只需要将其配置配出出来即可:

    image-20230926094024686

  3. 配置maven

    可以勾选自动安装,不需要我们手动下载安装

    image-20230925143549702

  4. 配置git

    配置 Git,由于 Jenkins 容器中已经存在 git 了,所以这里不需要额外安装 git,默认即可。

  5. 配置完成后点击【保存】进行保存。

5.5 远程的凭证配置

5.5.1 应用服务器信息172.22.15.123

应用服务器,就是将来 Jenkins 将代码构建成 jar 包后,要上传的服务器的信息(地址、用户名以及密码)。

配置步骤如下,首先找到配置的位置:

  1. 系统配置

    image-20230925175548668

  2. 配置服务器ssh连接

    配置后一定要在服务器开启ssh服务(不然jenkins通过ssh连接不上服务器),还连接不上就看看防火墙是否拦截了22端口,或者关闭防火墙

    image-20230925143549702

    image-20230925180558593

5.5.2 配置Gitee 的信息及凭据

  1. 还是在系统配置,配置gitee信息

    image-20230925180105133

  2. 配置Gitee凭据 添加按钮

    令牌生成地址:https://gitee.com/profile/personal_access_tokens

    image-20230925175830038

5.5.2 构建maven项目

  1. 创建项目

    image-20230925181633848

  2. 首先选择 Git,填入 Gitee 上的仓库地址

    这里有一个需要注意的地方,就是默认的分支名称,GitHub 上现在默认的主分支名称是 main,Gitee 似乎还是 master,这个无所谓了,但是小伙伴们注意图片下面的分支,按你实际的情况填写。

    image-20230925181352738

  3. 配置凭证 凭证就写 Gitee 的用户名/密码。

    image-20230925180316207

  4. 日志打印时间戳

    image-20230925181752461

  5. 接下来输入项目构建命令,将来 Jenkins 从 Gitee 上拉取代码下来之后,就执行该命令对项目进行打包

    image-20230925180740433

  6. 配置上传构建好的文件,并执行启动命令

    image-20230925182009167

  7. SSH Publishers详细信息

    image-20230925182809755

  8. 编写部署脚本deploy.sh放在/root/data/下

    export JAVA_HOME=/opt/java
    export PATH=$JAVA_HOME/bin:$PATHJAR_PATH=/root/dataJARFILE=jenkins_demo-0.0.1-SNAPSHOT.jarps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9java -jar $JAR_PATH/$JARFILE > out.log &
    if [ $? = 0 ];thensleep 30tail -n 50 out.log
    fi
    
  9. 另外,可以开启 SSH 操作日志,开启日志之后,就可以看到 Jenkins 中操作应用服务器其的过程了,特别是大家第一次配置的时候,容易出错,配置了日志,将来出错就知道什么原因导致的错误了。

    image-20230925183200127

  10. 构建成功(如果构建不成功可以根据控制台日志查看问题)

    这里的会出现小问题,我们的springboot项目启动后就会一直阻塞在这里,导致jenkins的ssh部署超时,但是实际上部署是成功的

    image-20230926095100231

    只需要修改一下部署脚本(/root/data/deploy.sh),让springboot后台启动

    image-20230926094550787

  11. 访问测试 http://172.22.15.123:8080/test/t1

    image-20230926094550787

6. 部署Vue项目

6.1 安装Node.js插件并重启

image-20230926094443290

6.2 全局工具配置配置nodejs

image-20230926095945759

6.3 构建node项目

  1. 构建一个自由风格的项目

    image-20230926100424953

  2. 此时就可以选择node部署

    image-20230926100525909

  3. 后续配置参照springboot配置,将vue编译后的文件上传到对于服务器的nginx对于目录中解压即可,脚本比较简单可以自行查找资料

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

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

相关文章

【Qt】三种方式实现抽奖小游戏

简介 本文章是基本Qt与C实现一个抽奖小游戏,用到的知识点在此前发布的几篇文章。 下面是跳转链接: 【Qt控件之QLabel】用法及技巧链接: https://blog.csdn.net/MrHHHHHH/article/details/133691441?spm1001.2014.3001.5501 【Qt控件之QPus…

Matlab论文插图绘制模板第118期—进阶气泡图

之前的文章中,分享过Matlab气泡图的绘制模板: 图虽说好看,但有一个缺点:需要手动调节两个图例的位置。 为了解决这一问题,我们不妨结合前段时间分享的紧凑排列多子图的绘制模板: 从而达到自动对齐排列的效…

【版本控制工具一】Git 安装注册及使用

文章目录 一、Git 、Github、Gitee1.1 概述1.2 码云 相对于 github 的优势 二、Github 或 Gitee注册2.1 注册2.2 创建仓库 三、Git下载与安装四、创建本地仓库 一、Git 、Github、Gitee 1.1 概述 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或…

Multi-Grade Deep Learning for Partial Differential Equations

论文阅读:Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation符号定义偏微分方程定义FNN定义PI…

网络流量安全分析-工作组异常

在网络中,工作组异常分析具有重要意义。以下是网络中工作组异常分析的几个关键点: 检测网络攻击:网络中的工作组异常可能是由恶意活动引起的,如网络攻击、病毒感染、黑客入侵等。通过对工作组异常的监控和分析,可以快…

(Qt5Gui.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位置 XXXXXXXX 时发生访问冲突

最新在处理opencv的时候遇到(Qt5Gui.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位置 XXXXXXXX 时发生访问冲突,导致上位机崩溃严重影响开发的效率。 简要代码: void show() {QImage img = QImage(data,width,height,bytePerLine,QImage::Format_RGB888); emit im…

Git基础

1、本地版本控制系统、集中式版本控制系统与分布式版本控制系统 文档: Git - 关于版本控制 1. 本地版本控制系统(Local Version Control System): 本地版本控制系统是最简单的版本控制系统,它基于文件的复制…

域名抢注和域名注册

随着互联网的发展,域名已经成为了企业和个人在网络上展示自己的重要标志。如何获得一段好记、易拼写、有意义的域名,是很多人都面临的问题。本文将介绍域名抢注和域名注册的相关内容,并推荐ym.qqmu.com这个可靠的域名注册平台。 一、什么是域…

Vue-2.1scoped样式冲突

默认情况&#xff1a;写在组件中的样式会全局生效->因此很容易造成多个组件之间的样式冲突问题 1.全局样式&#xff1a;默认组件中的样式会作用到全局 2.局部样式&#xff1a;可以给组件加上scoped属性&#xff0c;可以让样式只作用于当前组件 <style scoped> <…

轻松实现时间录入自由!如何在Microsoft Word中轻松插入格式化的日期和时间

在文档中插入当前日期和时间有几个原因。你可能希望将其插入信函或页眉或页脚中。无论是什么原因&#xff0c;Word都可以轻松地将日期和时间插入文档。 如果希望在打开或打印文档时自动更新日期和时间&#xff0c;可以将其作为自动更新的字段插入。该字段也可以随时手动更新。…

springboot项目静态资源映射

1. springboot项目静态资源映射 import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import

H5逆向之远程RPC

引言前一讲说过H5 怎么去抓包,逆向分析。其中说到RPC。这一节详细讲一下。有一种情况,JS 比较复杂,混淆的厉害。 这个时候就用到RPC。原理就是,hook web 浏览器,直接调用js 里边的方法。 Node 服务。为什么用到Node 服务,先来看下这架构 Node 对外提供各种接口,外部可以…

AVS3:DMVR

AVS3中引入了解码端运动矢量修正&#xff08;DMVR,Decoder side Motion Vector Refinement&#xff09;技术&#xff0c;AVS3中的DMVR技术和G.266/VVC类似&#xff0c;它可以在解码端生成运动参数从而减少传输运动参数的码率开销。它的基本思想是将skip/direct模式生成的前后向…

Swagger使用详解

目录 一、简介 二、SwaggerTest项目搭建 1. pom.xml 2. entity类 3. controller层 三、基本使用 1. 导入相关依赖 2. 编写配置文件 2.1 配置基本信息 2.2 配置接口信息 2.3 配置分组信息 2.3.1 分组名修改 2.3.2 设置多个分组 四、常用注解使用 1. ApiModel 2.A…

BS EN 12104-2023 软木地砖检测

软木地砖是指含有烧结成分的软木制成的块状砖&#xff0c;可用于地面覆盖物&#xff0c;装饰层等&#xff0c;具有脚感柔软舒适&#xff0c;防滑性能好&#xff0c;静音等性能&#xff0c;同时也其耐磨性较差&#xff0c;不易清洁。 BS EN 12104-2023软木地砖测试 测试项目 测…

Linux 指令心法(七)`cat` 查看、合并和创建文本文件

文章目录 命令的概述和用途命令的用法命令行选项和参数的详细说明命令的示例命令的注意事项或提示 命令的概述和用途 cat 是 “concatenate” 的缩写&#xff0c;它是一个 Linux 和 Unix 系统中的命令&#xff0c;用于查看、合并和创建文本文件。cat 主要用于以下几个方面&…

MongoDB-索引Index

索引Index 索引-Indexa) 概述b) 索引的类型b.1) 单字段索引b.2) 复合索引b.3) 其他索引 c) 索引的管理操作c.1) 索引的查看c.2) 索引的创建c.3) 索引的移除 d) 索引的使用d.1) 执行计划d.2) 涵盖的查询 索引-Index a) 概述 索引支持在MongoDB中高效地执行查询。如果没有索引&…

IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)

编程过程中如果出现错误&#xff0c;需要查找和定位错误时&#xff0c;借助程序调试可以快速查找错误。 编写好程序后&#xff0c;可能出现的情况&#xff1a; 1.没有bug。 使用Debug的情况&#xff1a; 2.运行后&#xff0c;出现错误或者异常信息&#xff0c;但是通过日志文件…

go的面向对象学习

文章目录 面向对象编程(上)1.问题与解决思路2.结构体1》Golang语言面向对象编程说明2》结构体与结构体变量(实例/对象)的关系的示意图3》入门案例(using struct to solve the problem of cat growing) 3.结构体的具体应用4.创建结构体变量和访问结构体字段5.struct类型的内存分…

vue3 组件v-model绑定props里的值,修改组件的值要触发回调

很早之前就写了&#xff0c;一直没写篇博客记录下 <select v-model"typeVal" />const emit defineEmits([update:type]); const props defineProps({type: { type: String, default: }, });const typeVal computed({get() {return props.type;},set(value…