【随手记录】docker部署jenkins,集成maven、spring项目

news/2024/11/14 23:06:52/文章来源:https://www.cnblogs.com/whaleX/p/18430914

1、下载镜像文件到服务器

docker pull jenkins/jenkins:lts-jdk17

或离线导入镜像:

docker load -i jenkins-lts-jdk17

检查镜像是否导入:

docker images|grep jenkinsjenkins/jenkins    lts-jdk17   7a7add0bf3da   2 weeks ago   470MB

2024年6月以后国内很多大型的Docker镜像站都停止了服务或改为内部使用,

具体已经停止服务的以及可用的镜像列表可以在这里找到:

https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6

2、创建文件夹/var/jenkins_home,用来存放jenkins的工作空间数据(路径、文件夹名称可以根据现场情况修改)

cd /var && mkdir jenkins_home

3、启动容器

使用docker run命令启动jenkins容器:

docker run -d -p 8080:8080 -p 50000:50000   -v /home/jenkins_home:/var/jenkins_home   -v /etc/localtime:/etc/localtime   -v /usr/bin/docker:/usr/bin/docker   -v /var/run/docker.sock:/var/run/docker.sock  -v /home/apache-maven-3.9.9:/var/apache-maven-3.9.9  -v /home/maven_repository:/root/.m2/repository  -v /home/jdk1.8.0_151:/var/jdk1.8.0_151--restart=on-failure   -u 0   --name jenkins   jenkins/jenkins:lts-jdk17

注意:

  • 根据实际情况调整挂载目录、开放端口:
  • /etc/localtime为了让容器内部时间和宿主服务器保持一致
  • /usr/bin/docker为了让容器内部可以使用docker命令
  • /var/run/docker.sock 为了让容器内的Docker客户端能够与宿主机的 Docker 守护进程通信
  • -u 0为了确保容器内的 Jenkins 有足够的权限执行需要的操作,以 root 用户(UID 0)身份运行容器。
  • /var/jenkins_home 为jenkins工作空间目录,备份该目录数据即可实现jenkins数据备份迁移
  • /home/apache-maven-3.9.9、/home/maven_repository为挂载的maven和maven类库
  • /home/jdk1.8.0_151该镜像内自带jdk17环境,如果想更改jdk版本,可以通过-v挂载jdk部署包并在系统里配置java_home路径

4、解锁jenkins

第一次打开jenkins系统需要配置密码,从/var/jenkins_home/secrets/initialAdminPassword

目录获取:

5、配置插件

新手建议安装推荐的插件,后续根据需求再调整插件

6、创建管理员账户

账户创建完成之后,步骤四的initialAdminPassword账户即删除,无效!

7、部署完成

8、补充所需插件  

需要用到maven、svn等插件,具体插件清单如下:

  • Subversion  --从SVN中获取代码
  • Maven Integration  -- 编译项目
  • Docker plugin  -- 用于节点管事中的 Docker 维护
  • docker-build-step  -- 用于 Build/Publish Docker Image
  • SSH -- 用于远程执行服务器上的命令

9、配置docker服务

如果是jenkins本地docker无需额外配置,如果是远程服务器docker,可以通过ssh插件执行docker命令或者通过docker cloud插件调度远端docker 

10、新增maven项目    

新增maven项目之前,需要配置好maven,再系统管理-全局工具配置里设置maven工具信息:

然后点击新增Item,选择”构建一个maven项目“,正式开始项目配置:

配置svn源码信息:

 

 

配置触发器,什么条件下触发执行,定时器采用linux的cron定时规则:

编译配置:  

执行脚本,本地打docker镜像

 

 

11、测试执行,完成

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

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

相关文章

CH585烧录

目前最新版本ISP工具还未更新至官网,旧版ISP工具还不包含CH585烧录选项。 可通过最新版本Mounriver Studio导出ISP工具, 除此之外,还需要更换下配置文件,右键Mounriver Studio打开文件所在位置,将名称为WCH55xISPDLL.dll的配置文件替换到该路径下:D:\MounRiver\MounRiver…

查看exe启动命令和参数

#qq.exe可以更换为任何正在运行的进程wmic process where caption="qq.exe" get caption,commandline /value

寄存器传值——函数剖析

寄存器传值导致的未定义行为寄存器传值——函数剖析 现象 实验环境:Ubuntu20,x86-64指令集 #include <stdio.h>int sum(int a, int b){return a+b; }int main() {int aa = sum(5,3);printf("%d, %d\n", 9);return 0; }编译器提示我们 printf()函数少一个参数…

Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Sep 2024)

Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Sep 2024)Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Sep 2024) Windows 11, version 23H2,企业版 arm64 x64 请访问原文链接:https://sysin.org/blog/windows-11/,查看最新版…

【YashanDB知识库】YAS-04110 invalid variant name

本文转自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7369202.html?templateId=1718516 【标题】错误码处理 【问题分类】查询语句报错 【关键字】YAS-04110 【问题描述】执行特定sql时,遇到相应报错 【问题原因分析】字段中含有保留字,应使用双引号包裹字…

章14——Hashtable

键和值为NULL时会抛出空指针异常。KEY重复且无NULL时同样会替换,和HashMap是一样的。按照2倍+1的规律去扩容与HASHMAP对比PROPERTIES,也是MAP接口的实现类,是Hashtable的子类 .properties 文件通常是用于数据库的配置文件,储存数据库的用户名密码等东西 详细可见博客园博客…

mac安装allure成功后pycharm虚拟环境allure不可用

mac安装allure成功pycharm虚拟环境cmd提示zsh: command not found: allure mac查看安装成功在虚拟环境查看失败确认虚拟环境变量 如果 Allure 仍然不可用,检查虚拟环境中的 PATH 环境变量是否包含了 Allure CLI 的路径。在虚拟环境中,你可以运行以下命令来查看 PATH: echo $…

如何删除 WPS 在图片文件属性中添加的“属性修改”选项卡

近期发现 WPS 2023 这一个非常恼人的特性,在图片文件的属性窗口里面乱加第三方选项卡。同事的电脑安装了这个版本,就让同事从注册表试了一下。还好金山他们藏的不是很深,借助 GPT 很快也就找到了。这里再用鄙人自己的虚拟机演示一遍。HKEY_CLASSES_ROOT\*\shellex\PropertyS…

POST请求的艺术:如何有效使用POST方法

在HTTP协议中,POST方法是一种用于向服务器提交数据的请求方式。与GET请求不同,POST请求将数据包含在请求体(request body)中,而不是URL中。这使得POST请求更适合传输大量数据和敏感信息。本文将探讨如何有效使用POST方法,以及它在现代Web开发中的应用。POST请求的基本概念…

Springboot中动态管理定时任务

引言 基于cron表达式的定时任务实现,因为cron表达式对于每个任务不确定,所以使用线程池来动态的创建和销毁定时任务 依赖 因为使用的spring自带的调度功能,所以没有额外的依赖,我的项目版本为: 使用 首先需要定义一个线程池,使用@configuration 注解配置 import org.spr…

Leetcode 1396. 设计地铁系统

1.题目基本信息 1.1.题目描述 地铁系统跟踪不同车站之间的乘客出行时间,并使用这一数据来计算从一站到另一站的平均时间。 实现 UndergroundSystem 类:void checkIn(int id, string stationName, int t)通行卡 ID 等于 id 的乘客,在时间 t ,从 stationName 站进入乘客一次只…

C# 开源浏览器性能提升,体验Chrome级速度

前言 使用 C# 和 CefSharp 开发的全功能网页浏览器。 项目介绍 SharpBrowser 是目前最快的开源 C# 网页浏览器! 采用了轻量级的 CEF 渲染器,在呈现网页时甚至比 Google Chrome 更快。 我们对比了所有可用的.NET 浏览器引擎,最终选择了高性能的 CefSharp。 SharpBrowser 使用…