• docker搭建Jenkins及基本使用


    1. 搭建

    1. 查询镜像

      docker search jenkins
      
      • 1

      image-20230922100330855

    2. 下载镜像

      docker pull jenkins/jenkins
      
      • 1

      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
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      命令描述
      -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
      
      • 1

      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 
        
        • 1
        • 2

        image-20230922101059585

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

        • 重启容器

          docker restart jenkins
          
          • 1
    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'
      
      • 1

      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}
      
      • 1
      • 2
      • 3
      • 4

      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
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
    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对于目录中解压即可,脚本比较简单可以自行查找资料

  • 相关阅读:
    如何制作网页链接自动录入工具
    【ASP.NET小白零基础入门】从0部署ASP.NET开发环境,并成功运行一个汉服图片管理系统
    【AT4162 [ARC099C]】 Independence 题解
    第2-4-3章 规则引擎Drools基础语法-业务规则管理系统-组件化-中台
    前端之【数据可视化】
    自动驾驶入门:规划
    springboot 跨域配置(处理filter,spring security等过滤器跨域问题)
    android学习day1
    [SQL开发笔记]UPDATE 语句:更新表中的记录
    rabbitmq 面试题
  • 原文地址:https://blog.csdn.net/qq_31745863/article/details/133632808