Docker內如何更新Jenkins
很多小伙伴在Docker中使用Jenkins時更新遇到困難,本次結合自己的實際經(jīng)驗,詳細講解。
根據(jù)官網(wǎng)Jenkins了解以下內容:
一、Jenkins 是什么?
Jenkins是一款開源 CI&CD 軟件,用于自動化各種任務,包括構建、測試和部署軟件。
Jenkins 支持各種運行方式,可通過系統(tǒng)包、Docker 或者通過一個獨立的 Java 程序。
二、開始使用 Jenkins
本導讀將向您介紹使用 Jenkins、Jenkins 的主要特性和 Jenkins Pipeline 的基本知識。
本導讀使用“獨立”的 Jenkins 發(fā)行版,它可以在您自己本地的機器上運行。
2.1 準備工作
第一次使用 Jenkins,您需要:
機器要求:
內存 | 硬盤 |
---|---|
256 MB 內存,建議大于 512 MB | 10 GB 的硬盤空間 |
需要安裝的軟件:
- Java 8 ( JRE 或者 JDK 都可以)
- Docker (導航到網(wǎng)站頂部的Get Docker鏈接以訪問適合您平臺的Docker下載)
2.2 下載并運行 Jenkins
1.下載 Jenkins.
2.打開終端進入到下載目錄.
3.運行命令
java -jar jenkins.war --httpPort=8080
4.打開瀏覽器進入鏈接
http://localhost:8080
5.按照說明完成安裝.
三、通過docker-compose部署Jenkins
我的代碼如下:
version: "3" volumes: # 自定義數(shù)據(jù)卷 jenkins_vol: #定義數(shù)據(jù)卷同步存放jenkins數(shù)據(jù) networks: jenkins_network: driver: bridge services: jenkins: image: jenkins/jenkins ports: - "8080:8080" - "50000:50000" volumes: - ./compose/jenkins/jenkins_home:/jenkins_file - jenkins_vol:/var/jenkins_home networks: - jenkins_network restart: always
名詞解釋:
volumes
——自定義數(shù)據(jù)卷networks
——自定義網(wǎng)絡(默認橋接), 不使用links通信services
——定義服務
jenkins: # jenkins服務 image: jenkins/jenkins # jenkins鏡像 ports: # 端口映射 - "8080:8080" # 映射到宿主機端口 - "50000:50000" # 映射到宿主機端口 volumes: # 數(shù)據(jù)卷掛載 - ./compose/jenkins/jenkins_home:/jenkins_file # 掛載jenkins數(shù)據(jù) - jenkins_vol:/var/jenkins_home # 掛載jenkins數(shù)據(jù) networks: # 網(wǎng)絡 - jenkins_network # 自定義網(wǎng)絡 restart: always # 重啟策略
通過命令運行:
sudo docker-compose up -d
執(zhí)行完畢后,Jenkins創(chuàng)建成功:
在瀏覽器通過URL訪問http://ip:8080進行訪問,首次使用根據(jù)頁面提示進行操作:
可使用cat命令查看密碼進行登錄:
cat /var/jenkins_home/secrets/initialAdminPassword
得到一串字符,這就是密碼,復制到瀏覽器中點擊繼續(xù):
這里根據(jù)需求安裝 ,后續(xù)一路默認安裝填寫即可。
四、更新Jenkins
根據(jù)提示,當前有更新版本:
點擊Downlaod進入下載jenkins.war文件 ,下載完成后將jenkins.war文件復制到本地與Docker容器掛載的對應目錄,根據(jù)上面的部署文件可以看出,該項目的本地掛載路徑為:
./compose/jenkins/jenkins_home
該路徑對應docker容器路徑為:
/jenkins_file
進入Docker容器,使用cd命令進入jenkins_file目錄,使用cp命令復制.war包到解析目錄,jenkins默認.war包路徑為/usr/share/jenkins
cp jenkins.war /usr/share/jenkins
最后重啟容器就會發(fā)現(xiàn)jenkins更新成功了?。。?/p>
如果遇到容器內cp權限問題 ,使用docker exec -it -u root 容器id /bin/bash進入即可
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。