案例分享:基於Docker環境下的Jenkins搭建及使用
Jenkins作為目前持續整合中使用較為廣泛的工具,在實際生產過程中透過結合眾多的外掛,從而實現工程的持續構建、持續部署。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
而傳統構建的應用場景大多數執行在虛擬機器或者獨立的伺服器上,在資源開銷和管理維護較為複雜。相比於獨立的伺服器/虛擬機器而言,容器不僅部署方便,且佔用資源較少。
Docker作為目前作為業內最火的一個容器解決方案之一,透過將兩者結合,從而實現服務的輕量化,並透過Docker管理Jenkins的資源。下面透過Docker部署Jenkins、Jenkins配置以及例項構建,講述Jenkins的基本使用。
Docker下安裝Jenkins
注:因為Jenkins容器裡的使用者是Jenkins,而主機使用者不是Jenkins,就算是root也一樣會報錯:/var/jenkins_home/copy_reference_file.log: Permission denied,這個時候就需要在主機上面給主機地址賦予訪問Jenkins容器的許可權,Jenkins內部用的是uid 1000的user。
-privileged=true讓容器具有root許可權,便於進入容器
-p 9090:8080指定主機9090埠對映到Jenkins容器的8080埠(Jenkins的web訪問埠)
-v /home/jenkins:/var/jenkins_home容器/var/jenkins_home路徑掛載到宿主機/home/jenkins路徑
啟動Jenkins
瀏覽器輸入訪問Jenkins首頁:
密碼地址
容器內:/var/jenkins_home/secrets/initialAdminPassword
宿主機:/home/jenkins/secrets/initialAdminPassword
進入外掛下載頁面,下載外掛:
Jenkins外掛下載
再進入外掛下載管理頁面/pluginManager/advanced,使用https://cdn.jsdelivr.net/gh/jenkins-zh/update-center-mirror/tsinghua/current/update-center.json替換原來的json。
配置Jenkins
修改Jenkins時間
檢視宿主機系統時間:
date -R
進入Jenkins容器檢視時間:
docker exec -it -u root 容器id /bin/bash # 進入容器
date -R # 檢視容器內時間
echo Asia/Shanghai >/etc/timezone # 容器內建立Asia時區檔案
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime # 退出容器並複製宿主機中localtime到容器內
配置Python3環境
Jenkins容器內並沒有Python3環境,需要自己安裝:
docker exec -it -u root 容器id /bin/bash #進入容器
cat /etc/issue #檢視當前作業系統
注:Debian系統,這裡使用apt-get代替yum。
apt-get update #更新apt-get
#apt-get安裝依賴包
apt-get -y install gcc automake autoconf libtool make
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
apt-get install sudo
# 安裝Python3
cd /var/jenkins_home
mkdir python3
cd python3
wget # 獲取python-3.6.8.tgz包
tar -xvf Pyhthon-3.6.8.tgz #解壓
cd Python-3.6.8 # 切換到Python-3.6.8目錄
#執行make和make install安裝
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make
make install
# 新增軟連線
# 新增Python3軟連線
ln -s /var/jenkins_home/python3/bin/python3.6 /usr/bin/python3
# 新增pip3軟連線
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
# 安裝所需Python庫
pip3 instal requests pytest-html pytest
配置HTML報告/Allure報告
HTML報告配置
HTML Publisher外掛下載,系統設定-->外掛管理-可選外掛,搜尋:HTML Publisher。
Allure報告配置
下載allure:。
docker cp /home/allure-2.14.0.tgz 容器id:/var/jenkins_home # 複製到容器內
cd /var/jenkins_home
mkdir allure
cd /var/jenkins_home/allure
tar -xvf allure-2.14.0.tgz # 解壓allure
安裝Allure Jenkins Plugin外掛,系統管理外掛管理-可選外掛,搜尋Allure:
安裝完成後,全域性工具配置>Allure Commandline安裝allure命令列工具,選擇容器內路徑。
簡單使用-例項構建
構建job。
引數化構建
系統設定-->外掛管理-可選外掛,搜尋Git Parameter.
安裝完成後,job中勾選引數化構建過程。
注:這裡是生成allure報告的配置,如果是要生成HTML報告則使用如下命令:
pytest test_demo.py --html=report/result.html --self-contained-html
構建後操作
path地方寫Aallure報告的地址,與執行shell地方生成的報告地址保持一致即可。
注:上述是生成allure報告配置,生成HTML配置如下:
注:HTML新增css樣式。
安裝Startup Trigger和Groovy外掛
在Job配置頁面構建觸發器勾選Build when job nodes start
增加構建步驟Execute system Groovy script
配置成功
配置成功後,引數化構建:
控制檯輸出
Allure報告檢視
HTML報告檢視
最後:
可以到我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2922438/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於Docker搭建LNMP環境DockerLNMP
- 基於ECS快速搭建Docker環境Docker
- docker+jenkins+android環境搭建(使用dockerfile)DockerJenkinsAndroid
- 基於docker環境下搭建redis主從叢集DockerRedis
- 基於CentOS、docker搭建jenkins內網前端可持續整合環境CentOSDockerJenkins內網前端
- 基於Jenkins快速搭建持續整合環境Jenkins
- Linux 上部署 docker,基於 docker 搭建 lnmp 環境LinuxDockerLNMP
- docker下LNMP環境搭建DockerLNMP
- 基於docker 搭建redis環境—redis單機版DockerRedis
- Day2——基於ECS快速搭建Docker環境Docker
- 使用docker搭建laravel環境DockerLaravel
- 基於Docker的日誌分析平臺(二) 環境搭建Docker
- 基於jenkins+kubernetes的cicd流程實踐一:環境搭建及方案原理Jenkins
- 【K8S】基於Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續整合交付環境(環境搭建篇)K8SDockerGitlabJenkins
- 基於Docker搭建PHP+Nginx+MySQL開發環境DockerPHPNginxMySql開發環境
- 體驗有禮:基於ECS快速搭建Docker環境Docker
- 使用docker快速搭建hive環境DockerHive
- 使用 Docker 搭建 Laravel 本地環境DockerLaravel
- 使用docker搭建tomcat環境DockerTomcat
- 使用docker搭建gitlab環境DockerGitlab
- 基於Debian搭建Hyperledger Fabric 2.4開發環境及執行簡單案例開發環境
- 基於Docker的LNMP開發環境DockerLNMP開發環境
- 基於RedHat的RAC環境下修改ip及vipRedhat
- 使用 Docker 搭建本地開發環境!Docker開發環境
- 使用 Docker 搭建 PHP 開發環境DockerPHP開發環境
- 使用 docker 搭建 web 服務環境DockerWeb
- Maven基礎:Maven環境搭建及基本使用(1)Maven
- mall在Linux環境下的自動化部署(基於Jenkins)LinuxJenkins
- CI環境搭建(Mac)——JenkinsMacJenkins
- 關於SVN伺服器的環境搭建及使用(轉)伺服器
- CentOS 7 使用 docker 搭建基本的 lnmp 環境CentOSDockerLNMP
- 基於spring boot 及mybatis的web開發環境搭建Spring BootMyBatisWeb開發環境
- docker搭建php環境DockerPHP
- docker搭建lnmp環境DockerLNMP
- Docker 搭建laravel環境DockerLaravel
- docker 搭建 lnmp 環境DockerLNMP
- docker搭建前端環境Docker前端
- docker本地環境搭建Docker