docker搭建Jenkins及基本使用

news2024/11/17 15:59:17

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:$PATH
    
    JAR_PATH=/root/data
    
    JARFILE=jenkins_demo-0.0.1-SNAPSHOT.jar
    
    ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
    
    java -jar $JAR_PATH/$JARFILE > out.log &
    if [ $? = 0 ];then
            sleep 30
            tail -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.coloradmin.cn/o/1065484.html

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

相关文章

基于FPGA设计的低成本四通道 1GSPS 示波器设计资料

完整设计资料下载链接 https://download.csdn.net/download/tianqiquan/88253962 该项目的目标是设计和构建一个PC 连接替代方案,以替代低成本台式 1000 系列示波器,在性能和价格上都具有竞争力。该项目必须达到的规格是四个通道至少 100MHz&#xff0c…

Linux网络配置解析:连接世界的关键步骤

1.IP预备知识 IP最重要的信息包含:IP地址DNS网关 以下以IPV4为例说明: 11000000.10101000.00000000.00000001/24 192.168.0.1/24IP地址一般包含32位二进制地址和子网掩码 子网掩码全1位置对应的就是IP地址的网络号,全0位置对应的就是具体…

【Spatial-Temporal Action Localization(五)】论文阅读2020年

文章目录 1. Actions as Moving Points摘要和结论引言:针对痛点和贡献模型框架实验 1. Actions as Moving Points Actions as Moving Points (ECCV 2020) 摘要和结论 MovingCenter Detector (MOCdetector) 通过将动作实例视为移动点的轨迹。通过三个分支生成 tub…

混合表示人体的论文

0、致敬Xia Weihao 整理了数字人方面的重要论文和链接 网址如下: GitHub - weihaox/awesome-digital-human: A collection of resources on digital human including clothed people digitalization, virtual try-on, and other related directions.A collection …

继电器测试的应用场景和行业有哪些?

继电器是一种常见的电气元件,用于控制电路的开关和保护设备,它在许多行业和应用场景中发挥着重要的作用。继电器在电力系统中用于保护和控制电力设备,如发电机、变压器、电缆和线路。继电器测试可以确保继电器的准确性和可靠性,以…

起重机笔记 - 进阶篇(编辑中...)

1.双速葫芦 起重机在实际使用过程中,要兼顾效率和最大载重这两个因素,所以,起重机厂商会推出双速葫芦。双速葫芦的变速比,10吨的级别,最高可以达到1:10甚至更靠上。大功率的低速档用于提升高载荷负重,高速…

米小樽MiMe三店同开,应时手作的高品质米乳饮品新体验

米小樽MiMe于美丽的鹭岛厦门正式试营业。这一次的布局不可谓不大,三家门店:莲花北路、湾悦城、西堤,厦门三地同步开启,致力于为消费者带来崭新的健康饮品体验,开启潮流的「饮养」生活方式。 清新惬意的门店设计&#x…

【Overload游戏引擎分析】编辑器对象鼠标拾取原理

Overload的场景视图区有拾取鼠标功能,单击拾取物体后会显示在Inspector面板中。本文来分析鼠标拾取这个功能背后的原理。 一、OpenGL的FrameBuffer 实现鼠标拾取常用的方式有两种:渲染id到纹理、光线投射求交。Overload使用的是渲染id到纹理&#xff0c…

苹果商城(App Store)应用程序苹果ios签名进行系统怎么上架的注意事项完整教程

苹果商城(App Store)应用程序苹果ios签名进行系统怎么上架的注意事项完整教程 导语:苹果签名是保障安全和防止软件篡改的重要措施,也是苹果设备下载应用程序的必要步骤。本文将为大家提供一个详细的教程,介绍如何为应用…

机械臂运动控制,通讯的解包->运动控制->数据封包上报过程

一、协议 数据格式为小端模式,浮点数格式为IEEE754,需与上位机的PC端一致,如window系统,其它系统需要自行测试,用于传输16位、32位、float数据格式,避免只传输字节数据带来转换的繁琐及精度丢失。 二、下位…

软件四大开源生态系统的开源

Java (Maven)、JavaScript (npm)、Python (PyPI)、.NET (NuGet Gallery) 四大开源生态系统的开源应用; 开源项目的主动维护也变得越来越少。研究表明,去年有近五分之一(18.6%)的项目停止维护,影响了 Java 和 JavaScrip…

【科研工具】-论文相关

科研工具 1 论文检索2 论文阅读3 论文写作4 论文发表 1 论文检索 计算机类英文文献检索数据库DBLP: 只有论文基本信息(标题、作者等);下载论文:知网\IEEE\ACM\SCI-Hub等,记得创建文件夹(检索词条、日期等&…

Vue3最佳实践 第七章 TypeScript 创建Trello 任务管理器

| ​ 我们将探讨如何使用Vue.js从零开始创建一个类似于Trello的任务管理应用程序。如果你不熟悉Trello,它是一款非常流行的任务管理工具,允许你把任务写在卡片上,然后通过一个看板的方式来直观地管理这些任务。Trello不仅可以用于个人的任务…

报名通道开启 | 第六届“强网”拟态防御国际精英挑战赛强势来袭

第六届“强网”拟态防御国际精英挑战赛计划将于2023年11月下旬在南京震撼开幕。 本届比赛采用线上线下结合的形式,再次为全球顶尖战队提供实战机会,向多类拟态防御设备系统发起挑战。接受挑战的拟态防御设备系统基于邬江兴院士原创的网络空间内生安全理…

向量空间的封闭性

向量空间封闭,是指: - 两个向量相加所得的向量仍然在该向量空间中 - 实数和向量数乘所得的向量仍然在该向量空间中 即,假设为向量的集合: 如果,,那么如果,,那么

电梯安全监测丨S271W无线水浸传感器用于电梯机房/电梯基坑水浸监测

城市化进程中,电梯与我们的生活息息相关。高层住宅、医院、商场、学校、车站等各种商业体建筑、公共建筑中电梯为我们生活工作提供了诸多便利。 保障电梯系统的安全至关重要!特别是电梯机房和电梯基坑可通过智能化改造提高其安全性和稳定性。例如在暴风…

电力行业首个自主可控的大模型发布了!百度飞桨、文心大模型提供支持

电力行业首个自主可控的大模型来了!9月26日,南方电网人工智能科技有限公司负责研发的电力行业人工智能创新平台及自主可控电力大模型正式公开发布。 南方电网举办电力行业人工智能创新平台及自主可控电力大模型发布会 电力行业人工智能创新平台提供模型…

总结一:C++面经(五万字长文)

文章目录 一、C基础部分1、C特点。2、说说C语言和C的区别。3、说说 C中 struct 和 class 的区别。4、 include头文件的顺序以及双引号""和尖括号<>的区别。5、说说C结构体和C结构体的区别。6、导入C函数的关键字是什么&#xff0c;C编译时和C有什么不同&#x…

期望最大化(EM)算法:从理论到实战全解析

目录 一、引言概率模型与隐变量极大似然估计&#xff08;MLE&#xff09;Jensen不等式 二、基础数学原理条件概率与联合概率似然函数Kullback-Leibler散度贝叶斯推断 三、EM算法的核心思想期望&#xff08;E&#xff09;步骤最大化&#xff08;M&#xff09;步骤Q函数与辅助函数…

城乡供水智慧化运营,喜提一等奖!

近日&#xff0c;第六届“绽放杯”5G应用征集大赛江西区域赛——5G智慧住建行业赛结果揭晓。由江西省水务集团、江西电信、天翼物联、熊猫智慧水务、江西普适科技联合申报的《5GPLC安全AIoT&#xff0c;助力江西水务城乡供水智慧化运营》项目获一等奖。 水务行业作为国民经济发…