当前位置: 首页 > news >正文

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对于目录中解压即可,脚本比较简单可以自行查找资料

相关文章:

docker搭建Jenkins及基本使用

1. 搭建 查询镜像 docker search jenkins下载镜像 docker pull jenkins/jenkins启动容器 #创建文件夹 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…...

CSS初体验

目录 一、CSS初体验 二、CSS引入方式 三、选择器 3.1 标签选择器 3.2 类选择器 3.3 id选择器 3.4 通配符选择器 四、盒子尺寸和背景色 五、文字控制属性 5.1 字体大小 5.2 字体样式(是否倾斜) 5.3 行高 5.3.1 单行文字垂直居中 5.4 字体族 5.5 font复合属性 5.…...

python性能分析

基于cProfile统计函数级的时延,生成排序列表、火焰图,可以快速定位python代码的耗时瓶颈。参考如下博文结合实操,总结为三步: 使用 cProfile 和火焰图调优 Python 程序性能 - 知乎本来想坐下来写篇 2018 年的总结,仔细…...

苹果手机怎么备份所有数据?2023年iPhone 15数据备份常用的3种方法!

当苹果手机需要进行刷机、恢复出厂设置、降级iOS系统等操作时,我们需要将自己的iPhone数据提前进行备份。 特别是在苹果发布新iOS系统时,总有一些小伙伴因为升降级系统,而导致了重要数据的丢失。 iPhone中储存着重要的照片、通讯录、文件等数…...

【RV1103】如何新增一个新板级配置

文章目录 新建一个板级配置文件 新建一个板级配置文件 我的目标 通过./build.sh lunch 来选择我的板子配置。 在目录sdk/project/cfg目录下新建一个xxxx.mk文件,文件名字格式如下: BoardConfig-"启动介质"-"电源方案"-"硬件…...

ThreeJS-3D教学五-材质

我们在ThreeJS-3D教学二&#xff1a;基础形状展示中有简单介绍过一些常用的材质&#xff0c;这次我们举例来具体看下效果&#xff1a; 代码是这样的&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…...

递归

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb;汉诺塔 &#x1f449;&…...

Vercel部署个人静态之DNS污染劫持问题

vercel是我第一次接触静态网站托管所使用的服务&#xff0c;类似的还有github以及Netfily。但是Vercel的自动化构建远比github page方便的多。通过github授权给Vercel就实现了自动拉取构建及发布的一系列流程。在本地推送代码可以使用小乌龟工具&#xff0c;线上代码发布使用Ve…...

Microsoft Defender Vulnerability部署方案

目录 前言 Microsoft Defender Vulnerability 的主要功能 Microsoft Defender Vulnerability部署方案 前言 Microsoft Defender Vulnerability 是微软公司提供的一种安全工具,用于检测和修复系统中的漏洞和弱点。它可以帮助用户保护他们的计算机免受潜在的威胁和攻击,提高…...

云服务器CVM_云主机_云计算服务器_弹性云服务器-腾讯云

腾讯云服务器CVM提供安全可靠的弹性计算服务&#xff0c;腾讯云明星级云服务器&#xff0c;弹性计算实时扩展或缩减计算资源&#xff0c;支持包年包月、按量计费和竞价实例计费模式&#xff0c;CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格&#xff0c;提供9个9的数…...

PLC之间无线通信-不用编程实现多品牌PLC无线通讯的解决方案

本文是PLC设备之间基于IGT-DSER系列智能网关实现WIFI无线通讯的案例。采用西门子S7-1500系列的PLC作为主站&#xff0c;与其它品牌的PLC之间进行网络通讯。案例包括智能网关AP方式、现场WIFI信号两种方式。有线以太网方式实现PLC之间通讯的案例 一、智能网关AP方式 将网络中的其…...

第二证券:A股反弹已至?9月最牛金股涨超41%

进入10月&#xff0c;作为券商月度战略精华的新一期金股也连续宣布。 从各券商关于十月份的大势研判来看&#xff0c;一些券商达观地认为反弹行情正在打开&#xff0c;也有一些券商认为仍是轰动市。具体配备上&#xff0c;AI、科创相关的标的仍然遭到喜欢&#xff0c;一起不少…...

机器人革命:你一定没见过这些全新的机器人技术!

原创 | 文 BFT机器人 01 通过机器人协作推进危险测绘 在危险测绘领域&#xff0c;研究人员开发了一种合作方案&#xff0c;利用地面和空中机器人对污染区域进行危险测绘。该团队通过使用异构覆盖控制技术提高了密度图的质量并降低了误差。与同质替代方案相比&#xff0c;该策…...

vue前端项目中添加独立的静态资源

如果想要在vue项目中放一些独立的静态资源&#xff0c;比如html文件或者用于下载的业务模板或其他文件等&#xff0c;需要在vue打包的时候指定一下静态资源的位置和打包后的目标位置。 使用的是 copy-webpack-plugin 插件&#xff0c;如果没有安装则需要先安装一下&#xff0c;…...

外汇天眼:业务员离职,也不给出金!Sky Alliance Markets摆烂不玩了?

近段时间&#xff0c;外汇天眼收到Sky Alliance Markets的客诉激增已达10条&#xff0c;目前该平台的官网还能打开。但最近关于Sky Alliance Markets是否跑路的争议也越来越多&#xff0c;据来外汇天眼投诉的用户透露&#xff0c;Sky Alliance Markets的员工大部分已经离职&…...

chrome浏览器如何多开

在网上寻找关于Chrome浏览器多开的教程时&#xff0c;你可能会发现操作相对复杂。然而&#xff0c;最近我发现了一个名为EasyBR浏览器的工具&#xff0c;作者使用程序将繁琐的步骤简化了。 主要功能 EasyBR浏览器具有以下主要功能&#xff1a; 批量账号管理&#xff1a;可以…...

学习笔记|串口通信的基础知识|同步/异步|常见的串口软件的参数|STC32G单片机视频开发教程(冲哥)|第二十集:串口通信基础

目录 1.串口通信的基础知识串口通信(Serial Communication)同步/异步&#xff1f;全双工&#xff1f;常见的串口软件的参数 2.STC32的串口通信实现原理引脚选择模式选择 3.串口通信代码实现编写串口1通信程序测试 总结 1.串口通信的基础知识 百度百科&#xff1a;串口通信的概…...

Golang接口实现OCP原则

文章目录 Golang接口实现OCP原则实例 Golang接口实现OCP原则 OCP&#xff1a; Open-Closed Principle 开闭原则&#xff0c;对扩展是开发的&#xff0c;对修改是关闭的。 实例 package mainimport "fmt"type Pet interface {eat()sleep() } type Dog struct { } t…...

【论文笔记】SVDM: Single-View Diffusion Model for Pseudo-Stereo 3D Object Detection

原文链接&#xff1a;https://arxiv.org/abs/2307.02270 1. 引言 目前的从单目相机生成伪传感器表达的方法依赖预训练的深度估计网络。这些方法需要深度标签来训练深度估计网络&#xff0c;且伪立体方法通过图像正向变形合成立体图像&#xff0c;会导致遮挡区域的像素伪影、扭…...

C++之sqlite数据库读写

C之sqlite数据库读写 常用函数应用例程 常用函数 1、sqlite3_open() 用于打开SQLite数据库。该函数接受两个参数&#xff1a;数据库文件名和打开模式。成功打开数据库后&#xff0c;将返回一个sqlite3*对象。 2、sqlite3_close() 用于关闭SQLite数据库。该函数接受一个sqlite…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...