DevOps-Jenkins-CI持续集成操作

这篇具有很好参考价值的文章主要介绍了DevOps-Jenkins-CI持续集成操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建项目

创建个web项目
DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
我这里直接用Spring Web自动生成的demos

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

启动项目,访问展示如下默认页面信息

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

项目新增Docker构建配置

在项目下新建docker目录,新增Dockerfile、docker-compose.yml文件

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

Dockerfile文件,将mytest.jar 复制到容器的/usr/local/目录下,在/usr/local执行命令java -jar mytest.jar

FROM daocloud.io/library/java:8u40-jdk
COPY mytest.jar /usr/local/
WORKDIR /usr/local
CMD java -jar mytest.jar

docker-compose.yml文件,当前目录以Dockerfile构建镜像,镜像叫mytest,版本v1.0,容器名字mytest,端口7777

version: '3.1'
services:
  mytest:
    build:
      context: ./
      dockerfile: Dockerfile
    image: mytest:v1.0
    container_name: mytest
    ports:
      - 7777:8080

修改pom.xml文件

build下添加配置,让jar包以mytest为名(mytest.jar,Docker构建里也是设置的复制名为这个jar包)

<finalName>mytest</finalName>

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
注意:如果跟我一样用默认生成的web还需修改主类配置,将主类配置修改如下。不然在本地正常运行,打成jar包后默认配置会跳过然后报错:no main manifest attribute, in mytest.jar

                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>com.monster.mytest.MytestApplication</mainClass>
                        </manifest>
                    </archive>
                </configuration>

上传代码

将代码上传至Gitlab
现在Gitlab还未做任何动作,先去Gitlab(192.168.170.111:8888)新建项目
这里测试我直接设置的公开的,不想多一步密码的操作
DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
在IDEA添加Git远程

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
推送到远程仓库

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
第一次推送会提示要令牌
DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
那我们就去Gitlab生成个令牌,来到用户设置里面 > Access Tokens
Token名称随意,必须授权api、read_user这两个范围,点击创建即可

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
点击创建按钮后,不要刷新或关闭页面,立马滑到最上面可以看见生成的token
只展示一次,刷新或关闭页面就得重新生成。

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
将token复制到IDEA提示的令牌款里既可以推送到Gitlab仓库了。

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

Jenkins配置

添加远程服务器

首先来到Jenkins配置 > 系统管理 > 系统配置,滑动到最下面添加SSH远程服务器,这里就是Publish Over SSH插件起到的重要。

将你需要把项目部署到哪台服务器,就添加哪台服务器的链接信息,例如这里我把项目部署到服务器192.168.170.111上(注意:部署的远程服务器需要安装好Docker)

设置好信息可以点击右下角的test configuration 测试一下连通性,是否能正常连接。

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
密码得点击左下角的“高级”按钮设置,支持使用密钥对的方式远程连接。

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

Jenkins任务创建

新建个任务,构建一个自由风格的软件项目

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
源码管理处设置你的git仓库地址,我这里设置的公开仓库拉去代码的时候无需账号密码,私有的点击高级按钮上面的“添加”按钮添加账号或密钥

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
需要注意你的Gitlab仓库的主分支是什么,设置对应不然拉去不到代码
DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

Build Steps设置maven,选中你安装的maven名称,目标命令:拉取完代码后清理构建跳过测试生产target目录此时还在Jenkins服务器。

clean package -DskipTests

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

SSH Publishers,选择我们要发布到哪台服务器上,就是前面在添加的170.111那台,配置命令做了下面两个步骤。

Transfer SetSource files:将target目录下所有.jar的文件和docker目录下的所有文件复制到远程应用服务器的/usr/local/test目录下。(Jenkins系统设置里面SSH添加服务器时设置的默认远程路径)

target/*.jar docker/*

Exec command:这时170.111的/usr/local/test/目录下有target和docker两个目录。执行下面的代码命令把target目录下人jar包移动到Docker目录里来,然后在执行容器关闭和后台启动构建动作

cd /usr/local/test/docker
mv ../target/*jar ./
docker compose down
docker compose up -d --build

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

Jenkins构建

点击Jenkins任务构建按钮,观看日志成功

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.906 s
[INFO] Finished at: 2024-03-11T09:03:12Z
[INFO] ------------------------------------------------------------------------
SSH: Connecting from host [3821aea39450]
SSH: Connecting with configuration [应用服务器-170.111] ...
SSH: EXEC: completed after 3,402 ms
SSH: Disconnecting configuration [应用服务器-170.111] ...
SSH: Transferred 3 file(s)
Build step 'Send files or execute commands over SSH' changed build result to SUCCESS
Finished: SUCCESS

构建完成后,会看见在170.111服务器跑起来个名称叫mytest容器,映射端口7777,镜像mytest,版本v1.0

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

访问页面,192.168.170.111:7777

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

测试持续集成

修改项目代码

这里我修改默认的index.html页面内容

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
只需要把交代码提交到Gitlab

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd
然后在Jenkins上,重新点击一下构建按钮,构建完成后刷新页面。

已经更新页面内容了,到此完成了CI持续集成动作。

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd

注意

由于每次构建都会产生一个同名称同版本的镜像,导致出现多个为none的镜像,会占用磁盘空间

[root@170.111 ~]# docker images
REPOSITORY                                                  TAG            IMAGE ID       CREATED         SIZE
mytest                                                      v1.0           79953e7736f6   19 hours ago    833MB
<none>                                                      <none>         341965b30bdb   19 hours ago    833MB
<none>                                                      <none>         5be66eda3a9f   21 hours ago    833MB
<none>                                                      <none>         76502810f6e2   21 hours ago    833MB
<none>                                                      <none>         a081353ee813   46 hours ago    816MB
<none>                                                      <none>         6274e74dbfe5   46 hours ago    816MB
<none>                                                      <none>         92517e725bf1   47 hours ago    816MB
<none>                                                      <none>         3e2cef065c83   47 hours ago    816MB
<none>                                                      <none>         62562f7fbc8f   47 hours ago    816MB
<none>                                                      <none>         cd7354c84a9e   2 days ago      816MB
<none>                                                      <none>         27e5c4ec8cf6   2 days ago      816MB
<none>                                                      <none>         4c0050b78b5f   2 days ago      816MB
<none>                                                      <none>         02a8eea88e51   2 days ago      816MB
<none>                                                      <none>         fb76f18fc433   2 days ago      816MB
<none>                                                      <none>         6a0d37f91dc0   2 days ago      816MB

可以通过Docker命令清理:docker image prune -f

[root@170.111 ~]# docker image prune -f
Deleted Images:
deleted: sha256:92517e725bf1e5d7da3c1dda813abd0ecfb384e42e24274d688f178edb3274a5
deleted: sha256:6274e74dbfe5859d0c524cf944f4d6367f7ccb838b6959a2305cb3074a7a5db2
deleted: sha256:3e2cef065c83863c4fc72c6daaa91ad863ffb6169da989401439edd7b84da217
deleted: sha256:974684128082884b37b1ed66bdc92a0df158c46651bcc72a10016bc8254f5cc5
deleted: sha256:6a0d37f91dc07c88d018a2e5416a4421dacc03299d16af79fdac03863753cff5
deleted: sha256:ade3c592595e3988a9a11cecfc153d03c9125b3e0c24f0cdaf642cfadebd659a
deleted: sha256:27e5c4ec8cf67ea3e8fc1bf2e18328a63515d19332808480e263732347db96bf
deleted: sha256:4c0050b78b5f40dd2f005f92f7733c92f2ed8618e6e8deedcf72695795d2e07a
deleted: sha256:052d315bd2eb53b89eee437218b2abf0dc1a53db7fd6122fc8c56dcf8b0afb60
deleted: sha256:cd7354c84a9e307819628e3c7ac23c7d0d5a84783c659c3b85355f22fb12673e
deleted: sha256:6923a5cc1787c1a985feeec6efdb28ddb202cad65e6f3454bd2a08e8f1573326
deleted: sha256:02a8eea88e51a5874b2fbd14e267f717398251dc34f073ea5ca1bed4cf2c514e
deleted: sha256:62562f7fbc8f6f059072855fec452aa9ffd4927f130a069c59a0ee097b5d5ab4
deleted: sha256:a081353ee81397bb5464a44409248d0c192e7b57eb247af4ad74ef7f4454da68
deleted: sha256:0461e94f875334812d180c094c2a998d89ae74da08b6f34b0cedcdaf755126de
deleted: sha256:341965b30bdba2baabdddcdf3d5e3e98ff3c58eb696fe186c40646d05ffe7d9d
deleted: sha256:fb76f18fc433d3fbf8aa42dc0e2ee8dfaad6ee722fd1390288c37b7591cd7563
deleted: sha256:5be66eda3a9f5fbb5284e6e785a9cb5ac2484c6d5c53491d595a89192ca6aea3

也加到Jenkins执行命令中,就不用我们手动去清理了

DevOps-Jenkins-CI持续集成操作,DevOps,devops,jenkins,ci/cd文章来源地址https://www.toymoban.com/news/detail-839268.html

到了这里,关于DevOps-Jenkins-CI持续集成操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生 • DevOps】一文掌握持续集成工具 Jenkins

    目录 一、持续集成工具 Jenkins 介绍 1. 什么是持续集成 2. Jenkins 介绍 二、Jenkins 的安装与部署 1. 安装 Jenkins 2. 本地访问 Jenkins 3. 插件的安装 4. 卸载 Jenkins 三、Jenkins 全局配置 1. Git 的安装与配置 2. JDK 的安装与配置 3. maven 的安装与配置 三、将代码上传至 Git 服务器 1. Gogs 的搭

    2024年02月03日
    浏览(43)
  • SkyEye与Jenkins的DevOps持续集成解决方案

    在技术飞速发展的当下,随着各行各业的软件逻辑复杂程度提升带来的需求变更,传统测试已无法满足与之相对应的一系列测试任务,有必要引入一个自动化、可持续集成构建的DevOps平台来解决此类问题。本文将主要介绍SkyEye与Jenkins的持续集成解决方案。 何谓DevOps?DevOps是

    2024年02月15日
    浏览(36)
  • 软件测试学习笔记丨持续集成DevOps - Jenkins安装

    本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30028 通过 war 包安装 通过安装包安装(不推荐) 通过 docker 命令安装(推荐 Linux 环境): docker pull jenkins/jenkins:lts 2.1 ,war包启动(用于调试,不推荐安装): (1), 下载war包后, 进入对应的war下载的目录,通过命令启

    2024年04月09日
    浏览(43)
  • (十六)devops持续集成开发——jenkins流水线构建之邮件通知

    本节内容主要介绍jenkins在流水线任务构建完成后的通知操作,使用jenkins的邮件通知插件完成构建任务结束的通知。一般项目发布都会通知相关的责任人,这样项目发布在出现问题时能够及时的处理。 ①在插件中心安装Email Extension邮件通知插件 ②申请一个发送邮件的邮箱服务

    2024年02月21日
    浏览(50)
  • (十九)devops持续集成开发——jenkins的一些常用插件和工具的安装

    本节内容会着重介绍jenkins持续集成开发工具的一些常用插件安装以及全局工具的配置安装,并说明其主要作用。在开始插件和工具安装之前,我们要保证可以正常访问网络,并且使用国内的插件更新地址,便于插件的正常安装。官方的地址可能会导致安装失败。以下是一些可

    2024年04月27日
    浏览(35)
  • (十四)devops持续集成开发——jenkins流水线使用pipeline方式发布项目

    本节内容我们使用另外一种方式pipeline实现项目的流水线部署发布,Jenkins Pipeline是一种允许以代码方式定义持续集成和持续交付流水线的工具。通过Jenkins Pipeline,可以将整个项目的构建、测试和部署过程以脚本的形式写入Jenkinsfile中,实现对整个流程的可视化管理和控制。在

    2024年02月21日
    浏览(47)
  • 『DevOps最佳实践』使用Jenkins和Harbor进行持续集成和交付的解决方案

    📣读完这篇文章里你能收获到 全文采用图文形式讲解 学会使用Harbor配置项目 学会在Jenkins中配置Harbor推送权限 使用Jenkins和Harbor进行持续集成的实践 感谢点赞+收藏,避免下次找不到~ 在现代软件开发中,自动化部署是提高效率和可靠性的关键。本文将带你深入探索如何使用

    2024年02月08日
    浏览(44)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用

    本节内容我们主要介绍在Jenkins流水线中,其构建过程中的一些构建策略的配置,例如通过远程http构建、定时任务构建、轮询SCM构建、参数化构建、Git hook钩子触发构建等,可根据不同的需求完成不同构建策略的配置。 - 构建策略说明: - 测试验证 - 构建说明 - 测试验证 - 配置

    2024年02月21日
    浏览(79)
  • 实践:devops之云主机模式持续部署(ci-cd)

    https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》 2条Jenkins pipeline CI pipeline CD pipeline 标准规范 项目规范与总体设计 公司里面要使用流水线要做持续集成CI/CD的项目越来越多,这对流水线的设计和开发有不同的要求。我们经常听到用户的反馈: 各种 不同语言的技术栈, 如何使流

    2024年02月12日
    浏览(31)
  • DevOps搭建(十九)-Jenkins+K8s自动化CI搭建详细步骤

    完整的pipeline-auto.yml脚本如下 完整的Jenkinsfile脚本如下 在Jenkins插件管理中搜索GitLab插件进行安装。 进入Jenkins项目配置里的 构建触发器 ,勾选如下选项: 从系统管理-系统配置-Gitlab将验证去掉,生产最好配置保证安全。 如果是GitLab和Jenkins在同一台服务器,需要开启允许请求

    2024年01月23日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包