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

Jenkins运行在docker中使用Maven构建Java应用程序

这篇笔记是Jenkins入门教程使用Maven构建Java应用程序的一个补充说明,因为我照着文档操作的过程中遇到不少问题,遂一一做个笔记。

我的主机是Windows 11,安装的docker是Docker Desktop 4.18.0。

第一点,在Windows里执行docker命令创建Jenkins container的时候,原文的命令如下。在我的环境下,%HOMEPATH%是\Users\jinga,直接报找不到路径的错。HOMEPATH的正确路径是C:\Users\jinga   然后为了方便,加上--name jenkins来指定container名字。

docker run ^--rm ^-u root ^-p 8080:8080 ^-v jenkins-data:/var/jenkins_home ^-v /var/run/docker.sock:/var/run/docker.sock ^-v "%HOMEPATH%":/home ^jenkinsci/blueocean

更改之后的命令如下。这样jenkins就运行在container中了。

docker run ^--rm ^-u root ^-p 8080:8080 ^-v jenkins-data:/var/jenkins_home ^-v /var/run/docker.sock:/var/run/docker.sock ^-v C:\Users\jinga:/home ^--name jenkins ^jenkinsci/blueocean

第二点,jenkins运行起来后,版本是2.361.4,版本比较低,我看了一下,目前最新版已经到2.399了。这导致的第一个问题就是,好些plugin因为版本低要升级。比方说,升级mailer。具体步骤如下。

  1. 从Dashboard>系统管理,这里已经可以看到很多红色警告了。点插件管理>update,在查找里输入mailer,勾选,点击下载待重启后安装。一般很快就安装,提示“下载成功,下次启动时生效”。这个时候,要重启container。步骤如下。
  2. docker ps -a 找到container的ID或名字,假设container叫jenkins
  3. docker container restart jenkins   重启container

第三点,因为jenkins的版本较低,所以我选择升级jenkins。我采取的步骤如下,jenkins是我的container名字。

  1. 在Windows主机上, download new version package of Jenkins from below link.我下载的是2.387.2版本 Jenkins download and deployment
  2. 如果jenkins container没启动,跑一下上面的启动命令让jenkins container运行起来。
  3. get Jenkins container id by docker ps -a
  4. copy downloaded jenkins.war in step 1 to docker, by docker cp jenkins.war jenkins:/
  5. log into container by docker  exec -it jenkins bash
  6. move jenkins.war to right directory by mv jenkins.war /usr/share/jenkins/jenkins.war
  7. exit and restart container by exit
  8. restart container by docker container restart jenkins

这样就把jenkins升级了,登录http://localhost:8080/确定已是升级后的版本。

第四点,升级完jenkins之后,要重新做一个image,要不然,下次启动jenkins container还用jenkinsci/blueocean这个base image,前面的升级就白做了。命令如下(jenkins是我的container名字)。

docker commit jenkins jenkins2.387.2:latest        从container保存image

docker images -a  可以显示所有images

这样操作之后,启动命令里面就要指定新的image名字jenkins2.387.2了,所以启动命令变成如下。

docker run ^--rm ^-u root ^-p 8080:8080 ^-v jenkins-data:/var/jenkins_home ^-v /var/run/docker.sock:/var/run/docker.sock ^-v C:\Users\jinga:/home ^--name jenkins ^
jenkins2.387.2

第五点,在“在Jenkins中创建你的流水线项目”一节中,配置Repository URL 的时候,我的local path不管怎么写都报无法识别,而且是给出的提示信息当中,全是git远程路径,所以我设置为我clone过来后在我的账户下的simple-java-maven-app的git路径,如下。https://github.com/jiabinliao/simple-java-maven-app.git  

第六点,需要安装docker pipeline这个plugin,否则运行pipeline的时候会报如下错误。安装之后重启container即可。

workflowscript: 3:Invalid agent type "docker" specified. Must be one of [any, label, none].

以上,仅做笔记以供参考。

另外,我好奇image存在哪里,找了一下,确定是存在C:\Users\jinga\AppData\Local\Docker\wsl\data\ext4.vhdx 4

可能因为是在Windows下的缘故,docker还是虚拟出来一块硬盘来存放所有data。这点其实跟VM有点像了。

相关文章:

Jenkins运行在docker中使用Maven构建Java应用程序

这篇笔记是Jenkins入门教程使用Maven构建Java应用程序的一个补充说明,因为我照着文档操作的过程中遇到不少问题,遂一一做个笔记。 我的主机是Windows 11,安装的docker是Docker Desktop 4.18.0。 第一点,在Windows里执行docker命…...

将excel导入到sqlite的方法代码

Python实现excel转sqlite的方法,具体如下: Python环境的安装配置就不说了,个人喜欢pydev的开发环境。 python解析excel需要使用第三方的库,这里选择使用xlrd 下面是源代码: #!/usr/bin/python # encodingutf-8 Creat…...

Redis主从复制、哨兵和集群部署

文章目录一、主从复制1、主从复制-哨兵-集群2、主从复制的概念3、主从复制的作用4、主从复制流程5、部署Redis 主从复制步骤6、实例操作:部署Redis 主从复制二、哨兵模式1、哨兵模式的原理2、哨兵模式的作用3、哨兵结构由两部分组成,哨兵节点和数据节点4…...

protobuf序列化

文章目录protubufprotobuf序列化protobuf的原理定义message编译message文件应用protobufMessage 基本用法Message 嵌套使用protubuf protobuf序列化 protobuf是一种比json和xml等序列化工具更加轻量和高效的结构化数据存储格式,性能比json和xml真的强很多&#xff…...

更新时无冲突的情况(阁瑞钛伦特软件-九耶实训)

大多数使用“与资源库同步”菜单的目的是想查看本地和远程资源的差异,并不想将本地的内容进行更新。 而“更新”菜单则不然,它的主要作用是将远程仓库中的内容下载到本地,以使本地的版本内容和仓库中的内容一致。 Step01:复用前…...

3.4 函数的单调性和曲线的凹凸性

学习目标: 如果我要学习函数的单调性和曲线的凹凸性,我会采取以下几个步骤: 理解概念和定义:首先,我会学习单调性和凹凸性的定义和概念。单调性是指函数的增减性质,可以分为单调递增和单调递减&#xff1b…...

LeetCode 404. 左叶子之和 | C++语言版

LeetCode 404. 左叶子之和 | C语言版LeetCode 404. 左叶子之和题目描述解题思路思路一:使用递归代码实现运行结果参考文章:思路二:减少遍历节点数代码实现运行结果参考文章:LeetCode 404. 左叶子之和 题目描述 题目地址&#xf…...

arm架构安装Rancher并导入k8s集群解决Error: no objects passed to apply

Rancher介绍 Rancher 2.0-2.4版本 是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。 Rancher 2.5版本 是为使用容…...

安装PaddleSpeech

github地址https://github.com/PaddlePaddle/PaddleSpeech 创建虚拟环境 conda create -p E:\Python\envs\nlppaddle python3.7 # conda create -p E:\Python\envs\speechstu python3.8激活虚拟环境 conda activate E:\Python\envs\nlppaddle # conda activate E:\Python\…...

UE “体积”的简单介绍

目录 一、阻挡体积 二、摄像机阻挡体积 三、销毁Z体积 四、后期处理体积 一、阻挡体积 你可以在静态网格体上使用阻挡体积替代碰撞表面,比如建筑物墙壁。这可以增强场景的可预测性,因为物理对象不会与地面和墙壁上的凸起细节相互作用。它还能降低物理模…...

微信 JAVA SDK 封装

weixin-popular 微信 JAVA SDK,是微信平台(公众平台、开放平台、商户平台、服务商平台)接口服务的JAVA 实现,开发 严格按照官方技术文档,合理划分包名、定义字段及方法,能胜任任何微信相关的业务。 使用建…...

上海智慧校园视频智能分析算法 yolov7

上海智慧校园视频智能分析算法通过yolov7python网络模型分析技术,上海智慧校园视频智能分析算法对校园内学生打架、翻墙、倒地、异常聚集、攀高等行为实时监测预警。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GP…...

【树】你真的会二叉树了嘛? --二叉树LeetCode专题

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...

《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数

本期给大家带来的是是《LeetCode 热题 HOT 100》第四题——寻找两个正序数组的中位数的题目讲解!!!() 本文目录 💥题意分析 💥解题思路: 1、直接法 (❌) …...

Unity- 游戏结束以及重启游戏

文章目录游戏结束以及重启游戏建个游戏结束页面编写委托类 游戏主角 以及 ui管理类的脚本重启游戏游戏结束以及重启游戏 思路:利用Canvas创建好覆盖全屏的结束页面,默认关闭。游戏结束时,玩家控制的对象发起委托,ui管理收下委托&…...

NGK BeCu8·11铜合金板材

NGK BeCu811铜合金板材 CB498K、CuSn6Zn4Pb2-B、CC498K、CuSn6Zn4Pb2-C CB494K、CuSn5Pb9-B、CC494K、CuSn5Pb9-C CB495K、CuSn10Pb10-B、CC495K、CuSn10Pb10-C CB496K、CuSn7Pb15-B、CC496K、CuSn7Pb15-C CB497K、CuSn5Pb20-B、CC497K、CuSn5Pb20-C 日本古河连接器专用材料如:…...

电脑突然死机怎么办?正确做法在这!

案例:电脑突然死机怎么办? 【家人们,我刚刚正在做工作报告,突然间电脑就死机了,这可怎么办啊?有什么方法可以快速解决这个问题吗?急急急!】 电脑在使用过程中,有时会出…...

基于cell数组的MATLAB仿真(附上完整仿真源码)

MATLAB是一款强大的数学软件,它提供了许多数据结构来存储和处理数据。其中,cell数组是一种非常有用的数据结构,它允许在一个数组中存储不同类型的数据,包括数值、字符串、逻辑值和其他cell数组等。 文章目录简单代码完整仿真源码下…...

电脑蓝屏问题排查

最近电脑安装了最新win10,更新最新的驱动以后,开机几分钟后,会蓝屏重启,报错为: DRIVER_POWER_STATE_FAILURE 下载蓝屏分析工具BlueScreenView 问题出在ntoskrnl.exe bing搜索给出了二种解决方案: 1&a…...

SpringBoot配置slf4j + logback

文章目录日志体系结构在SpringBoot中使用slf4j logback日志框架四种常用的日志输出1. ConsoleAppender2. FileAppender3. RollingFileAppender之TimeBasedRollingPolicy4. RollingFileAppender之SizeAndTimeBasedRollingPolicy日志过滤1. 级别介绍2. 过滤节点filter介绍Spring…...

SOONet模型Python入门实践:用10行代码实现视频片段搜索

SOONet模型Python入门实践:用10行代码实现视频片段搜索 你是不是也遇到过这种情况:手里有一段很长的视频,想快速找到某个特定场景,比如“主角第一次出场的时候”或者“那个爆炸的镜头”,结果只能手动拖进度条&#xf…...

Palo Alto PAN-OS 12.1.5 VM-Series for ESXi, KVM - 基于机器学习的下一代防火墙操作系统

Palo Alto PAN-OS 12.1.5 Orion 发布 - 基于机器学习的下一代防火墙操作系统 PAN-OS 12.1 Orion delivers industry firsts including quantum readiness, unified multi-cloud protection, and more. 请访问原文链接:https://sysin.org/blog/pan-os-12/ 查看最新…...

LANDrop局域网文件传输:3分钟快速上手跨平台文件共享神器

LANDrop局域网文件传输:3分钟快速上手跨平台文件共享神器 【免费下载链接】LANDrop Drop any files to any devices on your LAN. 项目地址: https://gitcode.com/gh_mirrors/la/LANDrop 还在为不同设备间传输文件而烦恼吗?🤔 LANDrop…...

05. 微交互设计模式解析:让界面更有生命力

05. 微交互设计模式解析:让界面更有生命力 引言 微交互是用户与界面之间的小互动,它们虽然微小,却能给用户带来巨大的愉悦感。作为一名把代码当散文写的 UI 匠人,我始终认为:好的微交互不是简单的动画效果,…...

收藏必备!小白程序员快速入门RAG,轻松提升大模型生成效果与准确性

RAG(检索增强生成)是一种提升大模型生成内容准确性和时效性的技术框架。通过从外部知识库检索信息,再将检索结果与大模型结合,有效解决大模型知识过时和幻觉问题。RAG流程包括知识嵌入存储、相似度检索和增强生成三个核心环节&…...

从云中心到边缘节点,Java Runtime冷启动优化全解析,将延迟压至87ms以内

第一章:Java边缘运行时部署的演进与挑战随着物联网、5G和实时AI推理场景的爆发式增长,Java应用正加速向边缘侧迁移。然而,传统JVM设计面向服务器长期运行环境,其启动延迟高、内存占用大、冷启动慢等特性与边缘设备资源受限、事件驱…...

ssm+java2026年毕设数据分析教学网站【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于会议管理问题的研究,现有研究主要以传统OA办公系统或通用协同办公平台为主,专门针对会议全生命周期…...

4个关键步骤:用vscode-ai-toolkit实现智能应用开发全流程

4个关键步骤:用vscode-ai-toolkit实现智能应用开发全流程 【免费下载链接】vscode-ai-toolkit 项目地址: https://gitcode.com/GitHub_Trending/vs/vscode-ai-toolkit AI Toolkit for Visual Studio Code是一款专为简化生成式AI应用开发设计的强大VS Code扩…...

二叉树面试送分题|力扣101对称+226翻转(递归极简写法,手写无压力)

兄弟们!二叉树面试中,有两道“送分题”必须拿捏——力扣101.对称二叉树和力扣226.翻转二叉树。这两道题难度不高,核心都能用递归轻松解决,代码简洁、逻辑直观,新手练一遍就能记住,面试手写直接加分&#xf…...

06. Flutter Hero动画实现:让界面过渡更加优雅

06. Flutter Hero动画实现:让界面过渡更加优雅 引言 Flutter 的 Hero 动画是一种神奇的过渡效果,它能让元素在不同页面之间平滑过渡,创造出连贯且令人愉悦的用户体验。作为一名把代码当散文写的 UI 匠人,我始终认为:好…...