Docker安裝Jenkins全過程
先來解一下什么是Jenkins
jenkins是基于java開發(fā)的一種持續(xù)集成工具,用于自動(dòng)化軟件項(xiàng)目的構(gòu)建、測試和部署流程,監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個(gè)開放易用的軟件平臺,使軟件項(xiàng)目可以進(jìn)行持續(xù)集成。
jenkins功能:
- 1、軟件的持續(xù)構(gòu)建和測試,使開發(fā)人員可以很容易的將改變集成到工程中;
- 2、監(jiān)視job的執(zhí)行;
- 3、項(xiàng)目源代碼修改的檢測;
- 4、分布式構(gòu)建,可更好地利用硬件資源,節(jié)省時(shí)間。
Jenkins基于java開發(fā),提供了一個(gè)易用的平臺,使得軟件的持續(xù)集成成為可能。它起源于Hudson,是一個(gè)可擴(kuò)展的持續(xù)集成引擎。
Jenkins的核心功能包括持續(xù)的自動(dòng)化任務(wù)、構(gòu)建監(jiān)控、測試報(bào)告等,它可以幫助開發(fā)團(tuán)隊(duì)提高軟件的質(zhì)量和效率。
通俗來說: Jenkins是一個(gè)開源的軟件。
這款軟件可以供我們安裝,安裝成功以后在瀏覽器中輸入 http://localhost:8080(或者是輸入http://安裝Jenkins電腦的IP:8080)會(huì)出現(xiàn)一個(gè)界面,在這個(gè)界面上進(jìn)行一些配置,我們就可以通過這個(gè)軟件來管理我們正在開發(fā)的項(xiàng)目,可以讓它來減少我們軟件開發(fā)的時(shí)候的出錯(cuò)率,替我們把軟件合到一起,并且將有問題的部分檢測出來。
Jenkins功能
軟件的持續(xù)構(gòu)建和測試,Jenkins提供了一個(gè)系統(tǒng),使開發(fā)人員可以很容易的將改變集成到工程中。自動(dòng)化的、持續(xù)的構(gòu)建有利于提高開發(fā)效率。
監(jiān)視job的執(zhí)行,job可以實(shí)現(xiàn)很多的功能,Jenkins可以對這些項(xiàng)目進(jìn)行顯示,讓用戶更清楚的注意到這些損毀的job。
項(xiàng)目源代碼修改的檢測,jenkins能夠從項(xiàng)目的Subversion/CVS生成最近修改的集合列表,且不會(huì)增加Subversion/CVS Repository的負(fù)載。
分布式構(gòu)建,Jenkins可以將工程構(gòu)建到多臺機(jī)器,更好地利用硬件資源,節(jié)省時(shí)間
我們先來拉取jenkins的鏡像,作者這里指定了版本2.401.1 如果不之指定版本,默認(rèn)拉取為最新版本
docker pull jenkins/jenkins:2.401.1
?
可以看到我們已經(jīng)拉取好jenkins的鏡像了
創(chuàng)建文件夾 mkdir /mydata/jenkins
?
?
給這個(gè)目錄賦權(quán)限 chmod 777 /mydata/jenkins
可以看到權(quán)限變成了最高權(quán)限
由于之后要自動(dòng)化部署要用到maven和jdk,我們來下載一下,具體怎么使用jenkins,之后博主會(huì)繼續(xù)更新
首先我們需要下載 java 開發(fā)工具包 JDK,下載地址:
Java Downloads | Oracle?編輯https://www.oracle.com/java/technologies/downloads/
我們要選擇linux版本1.8也可以,17版本也可以,但是作者這里推薦使用1.8,因?yàn)?7版本好像和jenkins有沖突
下載好之后,我們自定義一個(gè)路徑,上傳解壓之后就好了,作者下載到了usr下面
也可以使用下面這段命令下載jdk壓縮包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
使用下面這段命令解壓
tar -zxvf jdk-8u131-linux-x64.tar.gz #注意,你在那個(gè)目錄下上傳,并且解壓,之后這個(gè)jdk就在那個(gè)目錄下 #根據(jù)解壓目錄配置 java 環(huán)境變量 vim /etc/profile #根據(jù)自己的安裝目錄配置 export JAVA_HOME=/usr/jdk1.8.0_131 export PATH=$JAVA_HOME/bin:$PATH #文件生效 source /etc/profile #測試,顯示出 jdk 版本即為安裝成功 java -version
下面來安裝maven
#獲取壓縮包 wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz #解壓縮 tar -zxvf apache-maven-3.9.6-bin.tar.gz #配置maven環(huán)境變量 vim /etc/profile #修改為自己的安裝目錄 export MAVEN_HOME=/opt/maven3.9/apache-maven-3.9.6 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH #文件生效 source /etc/profile #測試,顯示出 maven 版本即為安裝成功 mvn -v
下面我們來啟動(dòng)容器
docker run -d --name jenkins -p 8089:8080 -p 8880:8888 -p 50000:50000 -v /usr/jdk1.8.0_131:/usr/jdk1.8.0_131 -v /brook/maven/apache-maven-3.9.6:/brook/maven/apache-maven-3.9.6 -v /usr/local/docker/jenkins:/var/jenkins_home jenkins/jenkins:2.401.1
解釋一下
- docker run: 運(yùn)行一個(gè) Docker 容器的命令。
- -d: 表示在后臺(detached 模式)運(yùn)行容器。
- --name jenkins: 為容器指定名稱為 "jenkins",這樣在未來的操作中可以通過名稱來引用該容器。
- -p 8089:8080: 將容器內(nèi)部的 8080 端口映射到宿主機(jī)上的 8089 端口,這樣可以通過訪問宿主機(jī)的 8089 端口來訪問 Jenkins 服務(wù)。
- -p 8880:8888: 將容器內(nèi)部的 8888 端口映射到宿主機(jī)上的 8880 端口,這可能是 Jenkins 容器中使用的其他服務(wù)端口。
- -p 50000:50000: 將容器內(nèi)部的 50000 端口映射到宿主機(jī)上的 50000 端口,這通常用于 Jenkins 的 agent 節(jié)點(diǎn)連接。
- -v /usr/jdk1.8.0_131:/usr/jdk1.8.0_131: 將宿主機(jī)的 /usr/jdk1.8.0_131 目錄掛載到容器的 /usr/jdk1.8.0_131 目錄,這樣 Jenkins 容器可以訪問宿主機(jī)上的 JDK。
- -v /brook/maven/apache-maven-3.9.6:/brook/maven/apache-maven-3.9.6: 將宿主機(jī)的 /brook/maven/apache-maven-3.9.6 目錄掛載到容器的 /brook/maven/apache-maven-3.9.6 目錄,這樣 Jenkins 容器可以訪問宿主機(jī)上的 Maven。
- -v /usr/local/docker/jenkins:/var/jenkins_home: 將宿主機(jī)的 /usr/local/docker/jenkins 目錄掛載到容器的 /var/jenkins_home 目錄,這樣可以將 Jenkins 的數(shù)據(jù)持久化存儲到宿主機(jī)上。
- jenkins/jenkins:2.401.1: 指定要運(yùn)行的鏡像名稱及版本號。在這里,使用的是 Jenkins 官方鏡像,并指定了版本號為 2.401.1。
可以看到我們已經(jīng)啟動(dòng)成功了
我們來驗(yàn)證一下,訪問:http://自己的服務(wù)器Ip:8089
我們進(jìn)入容器來獲取我們的密碼
進(jìn)入jenkins容器
docker exec -it jenkins /bin/bash
使用以下命令查看密碼
cat /var/jenkins_home/secrets/initialAdminPassword
我們已經(jīng)獲取到了密碼回到剛才訪問的頁面進(jìn)行解鎖,點(diǎn)擊繼續(xù)
來到這個(gè)頁面,我們選擇安裝推薦的插件
這個(gè)過程中可能有點(diǎn)慢,可能是由于網(wǎng)絡(luò)的原因
下載完成之后,我們來創(chuàng)建管理員用戶
保存完成之后,如果頁面卡住了,那就重新刷新一下頁面,再來填寫一遍就可以了,然后就可以開始你們的jenkins之旅了??!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決docker中mysql時(shí)間與系統(tǒng)時(shí)間不一致問題
最近在Docker中裝mysql時(shí),發(fā)現(xiàn)數(shù)據(jù)庫時(shí)間與系統(tǒng)時(shí)間相差8個(gè)小時(shí)。查詢資料發(fā)現(xiàn),docker的默認(rèn)時(shí)區(qū)是0區(qū),其實(shí)這會(huì)對安裝的容器造成不少麻煩,比如執(zhí)行日志的記錄不準(zhǔn)確等2021-12-12docker-compose配置并部署redis服務(wù)的實(shí)現(xiàn)
本文主要介紹了docker-compose配置并部署redis服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04如何監(jiān)控docker容器運(yùn)行狀態(tài) shell 腳本
這篇文章主要介紹了如何監(jiān)控docker容器運(yùn)行狀態(tài) shell 腳本的操作方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Docker搭建MySQL5.7主從復(fù)制的實(shí)現(xiàn)
本文主要介紹了Docker搭建MySQL5.7主從復(fù)制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06