当前位置: 首页 > 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有点像了。

http://www.lryc.cn/news/58131.html

相关文章:

  • 将excel导入到sqlite的方法代码
  • Redis主从复制、哨兵和集群部署
  • protobuf序列化
  • 更新时无冲突的情况(阁瑞钛伦特软件-九耶实训)
  • 3.4 函数的单调性和曲线的凹凸性
  • LeetCode 404. 左叶子之和 | C++语言版
  • arm架构安装Rancher并导入k8s集群解决Error: no objects passed to apply
  • 安装PaddleSpeech
  • UE “体积”的简单介绍
  • 微信 JAVA SDK 封装
  • 上海智慧校园视频智能分析算法 yolov7
  • 【树】你真的会二叉树了嘛? --二叉树LeetCode专题
  • 《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数
  • Unity- 游戏结束以及重启游戏
  • NGK BeCu8·11铜合金板材
  • 电脑突然死机怎么办?正确做法在这!
  • 基于cell数组的MATLAB仿真(附上完整仿真源码)
  • 电脑蓝屏问题排查
  • SpringBoot配置slf4j + logback
  • JAVA——网络编程基本概念
  • [JavaEE]----Spring02
  • 笔记本可自行更换CPU、独显了,老外用它手搓了台“PS5”
  • Linux uart驱动框架
  • 第一个禁止ChatGPT的西方国家
  • Web 攻防之业务安全:Session会话注销测试.
  • 4月最新编程排行出炉,第一名ChatGPT都在用~
  • 生成不保存在服务器的附件,并以附件形式发送邮件
  • Golang Gin框架HTTP上传文件
  • BM36-判断是不是平衡二叉树
  • Quartz 单例定时任务