Docker部署的Jenkins如何更新版本

1. 安装Jenkins
docker-compose.yml

version: '3.1'
services:
  jenkins:
    restart: always
    image: jenkins/jenkins:centos.v1
    container_name: jenkins
    ports:
      # 发布端口
      - 12012:8080
      # 基于 JNLP 的 Jenkins 代理通过 TCP 端口 50000 与 Jenkins master 进行通信
      #- 50000:50000
    environment:
      - "TZ=Asia/Shanghai"
      - "PATH=$PATH:$HOME/bin:/var/local/apache-maven-3.6.3/bin"
    volumes:
      - ./data:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker


启动命令docker-compose up -d

2. 进入容器更新Jenkins版本
首先,进入容器,记得一定用root用户

[root@iZ8vbi9mx98t2q4hbta56aZ war]# docker cp jenkins.war jenkins:/root/
[root@iZ8vbi9mx98t2q4hbta56aZ war]# docker exec -u root -it jenkins bash


其次,执行命令查看java进程

[root@47faa9548aa0 /]# cd /root/
[root@47faa9548aa0 ~]# ps -ef|grep java
jenkins      7     1  0 Mar12 ?        00:04:22 java -Duser.home=/var/jenkins_home -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar /usr/share/jenkins/jenkins.war
root      1012   994  0 16:35 pts/0    00:00:00 grep --color=auto java


这里就能发现,其实容器里面就是使用java启动了jenkins.war包,那么我们升级/usr/share/jenkins/jenkins.war就可以了。

3. 容器里面下载最新的war包

 下载地址

https://mirrors.jenkins.io/war-stable/


进入官网查看下载jenkins download
通过F12发现下载最新版本链接就是:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
本地下载后上传服务器,并拷贝到容器中

[root@iZ8vbi9mx98t2q4hbta56aZ war]# docker cp jenkins.war jenkins:/root/
[root@iZ8vbi9mx98t2q4hbta56aZ war]# docker exec -u root -it jenkins bash

[root@47faa9548aa0 /]# cd /root/
[root@47faa9548aa0 ~]# ps -ef|grep java
jenkins      7     1  0 Mar12 ?        00:04:22 java -Duser.home=/var/jenkins_home -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar /usr/share/jenkins/jenkins.war
root      1012   994  0 16:35 pts/0    00:00:00 grep --color=auto java


[root@47faa9548aa0 ~]#  cd /usr/share/jenkins/
[root@47faa9548aa0 jenkins]# cp jenkins.war jenkins.war.22.3.17.bak
[root@47faa9548aa0 jenkins]# ls
jenkins.war  jenkins.war.22.3.17.bak  ref
[root@47faa9548aa0 jenkins]# mkdir other-version
[root@47faa9548aa0 jenkins]# cd other-version/
[root@47faa9548aa0 other-version]# cp /root/jenkins.war .

4. 删除原war包,使用新的替换即可

[root@47faa9548aa0 other-version]# cd /usr/share/jenkins
[root@47faa9548aa0 jenkins]# ls
jenkins.war  jenkins.war.22.3.17.bak  other-version  ref
[root@47faa9548aa0 jenkins]#  rm jenkins.war
rm: remove regular file 'jenkins.war'? y
[root@47faa9548aa0 jenkins]# cd other-version
[root@47faa9548aa0 other-version]# mv jenkins.war ../
[root@47faa9548aa0 other-version]# cd ..
[root@47faa9548aa0 jenkins]# ls
jenkins.war  jenkins.war.22.3.17.bak  other-version  ref
docker-compose stop
docker-compose up -d

遇到问题

java.lang.IllegalStateException: An attempt to save the global configuration was made before it was loaded
	at jenkins.model.Jenkins.save(Jenkins.java:3519)
	at jenkins.model.Jenkins.saveQuietly(Jenkins.java:3546)
	at jenkins.model.Jenkins.setSecurityRealm(Jenkins.java:2743)
	at jenkins.model.Jenkins$15.run(Jenkins.java:3481)
	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:175)
	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305)
	at jenkins.model.Jenkins$5.runTask(Jenkins.java:1156)
	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:222)
	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:121)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused: org.jvnet.hudson.reactor.ReactorException
	at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:291)
	at jenkins.InitReactorRunner.run(InitReactorRunner.java:49)
	at jenkins.model.Jenkins.executeReactor(Jenkins.java:1191)
	at jenkins.model.Jenkins.<init>(Jenkins.java:981)
	at hudson.model.Hudson.<init>(Hudson.java:86)
	at hudson.model.Hudson.<init>(Hudson.java:82)
	at hudson.WebAppMain$3.run(WebAppMain.java:247)
Caused: hudson.util.HudsonFailedToLoad
	at hudson.WebAppMain$3.run(WebAppMain.java:264)

下载hpi文件,并将其放到JENKINS_HOME/plugins文件夹。jenkins plugin文件夹一般在下面位置:docker/jenkins/data/plugins

Role strategy hpi plugin的下载链接为

https://updates.jenkins.io/latest/role-strategy.hpi

爬虫Python学习是指学习如何使用Python编程语言来进行网络爬取和数据提取的过程。Python是一种简单易学且功能强大的编程语言,因此被广泛用于爬虫开发。爬虫是指通过编写程序自动抓取网页上的信息,可以用于数据采集、数据分析、网站监测等多个领域。 对于想要学习爬虫的新手来说,Python是一个很好的入门语言。Python的语法简洁易懂,而且有丰富的第三方库和工具,如BeautifulSoup、Scrapy等,可以帮助开发者轻松地进行网页解析和数据提取。此外,Python还有很多优秀的教程和学习资源可供选择,可以帮助新手快速入门并掌握爬虫技能。 如果你对Python编程有一定的基础,那么学习爬虫并不难。你可以通过观看教学视频、阅读教程、参与在线课程等方式来学习。网络上有很多免费和付费的学习资源可供选择,你可以根据自己的需求和学习风格选择适合自己的学习材料。 总之,学习爬虫Python需要一定的编程基础,但并不难。通过选择合适的学习资源和不断实践,你可以逐步掌握爬虫的技能,并在实际项目中应用它们。 #### 引用[.reference_title] - *1* *3* [如何自学Python爬虫? 零基础入门教程](https://blog.csdn.net/zihong523/article/details/122001612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [新手小白必看 Python爬虫学习路线全面指导](https://blog.csdn.net/weixin_67991858/article/details/128370135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值