自動(dòng)化寫(xiě)好后需要在服務(wù)器上每日定時(shí)運行遇到,這樣的一個(gè)問(wèn)題,Jenkins容器是在docker中安裝的 ,然后從git上拉取代碼 發(fā)現代碼在jenkins容器的目錄當中,運行的時(shí)候提示沒(méi)有安裝python環(huán)境還第三方庫。
解決方法有3種:
第一種:?jiǎn)?dòng)jenkins容器時(shí) 將容器的目錄掛載到宿主機目錄上去執行(方法不能實(shí)現)Pass
第二種:在jenkins上創(chuàng )建本地節點(diǎn),將代碼拉取到本地 然后去運行本地項目(在本機上使用比較方便,但是局限性比較?。?/p>
第三種:重新封裝jenkins鏡像,在jenkins鏡像中安裝python3的環(huán)境 在容器中執行項目(步驟麻煩,但后續永久使用)
第一種方法和第二種方法前提都需要在服務(wù)器中安裝docker和jenkins鏡像
安裝docker
1.查找docker上的鏡像 docker search jenkins 2.下載自己所需要的鏡像 docker pull jenkinsci/blueocean 3.查看是否下載成功 docker images 4.啟動(dòng)下載的鏡像 docker run -d -p 10240:8080 -p 10241:50000 -v /jenkins_autotest/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --name jenkint_test jenkinsci/blueocean #說(shuō)明:docker run 運行 -d:后臺運行容器 -p:指定容器的端口映射 -p 10240:8080 表示將容器的8080端口映射到宿主機的10240端口上 ,映射多個(gè)端口使用 -p 8082:8080 -p 8083:8081 -v:掛載宿主機目錄和 docker容器中的目錄 /Users/songpeilun/jenkins_home 本地宿主機絕對目錄;/var/jenkins_home 容器目錄(將容器目錄掛載到本地) -v:/etc/localtime:/etc/localtime 本地時(shí)間和容器時(shí)間同步 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai 設置容器時(shí)間為上海時(shí)間(不然容器時(shí)間和本地時(shí)間相差8小時(shí)) --name jenkint_test 設置容器的名稱(chēng) jenkinsci/blueocean 選擇鏡像名稱(chēng)啟動(dòng)容器(默認鏡像后面會(huì )加latest 如果拉取自己創(chuàng )建的鏡像后面要加自己的版本號 jenkinsci/blueocean:版本號TAG ) ⚠️ 容器目錄掛載本地目錄時(shí) 一定要給本地文件夾賦予權限 chmod 777 jenkins_home
輸入docker images查看jenkins鏡像是否安裝成功
docker images
查看容器是否運行
docker ps
可以看出docker中已經(jīng)有運行的容器jenkins
這樣就說(shuō)明 已經(jīng)安裝好jenkins 現在就可以啟動(dòng)jenkins了
瀏覽器輸入 服務(wù)器的ip+端口號 http://47.99.98.250:10240/ 如果無(wú)法訪(fǎng)問(wèn)請關(guān)閉系統防火墻
查看密碼的方式有2種,第一種是在服務(wù)器的容器中查看,第二種是在映射本地查看(前提是你映射了本地目錄)
好了,到這里就已經(jīng)安裝好jenkins了
容器中查看密碼:cat /var/jenkins_home/secrets/initialAdminPassword 映射本地目錄:cat /Users/songpeilun/jenkins_home/secrets/initialAdminPassword #/Users/songpeilun/jenkins_home 本地映射目錄地址
說(shuō)一下方法2的具體邏輯,主要是新建jenkins的本地節點(diǎn) 利用新的節點(diǎn)將git上的代碼拉取到本地(宿主機)上去執行代碼
該方法主要適用于 本地已經(jīng)有一套python3的一套環(huán)境,可以直接運行自動(dòng)化 利用本地持續集成實(shí)現每日自動(dòng)化報告(缺點(diǎn):因為利用的是本地節點(diǎn) 利用宿主機地址當作ip 所以每次都需要開(kāi)啟電腦和jenkins地址 且外網(wǎng)不能訪(fǎng)問(wèn) 局限性?。?/p>
第一步:在jenkins當中安裝SSH Agent插件
安裝 ssh Agent插件 系統設置—插件管理—可選插件 然后輸入ssh agent 搜索
第二步新增節點(diǎn)
系統設置—節點(diǎn)管理—新建節點(diǎn)(節點(diǎn)名稱(chēng)不能重復)
說(shuō)明:
節點(diǎn)名稱(chēng):名稱(chēng)盡量用英文和字符不要用漢字(創(chuàng )建項目的時(shí)候選擇節點(diǎn)會(huì )有警告?。?/p>
節點(diǎn)描述:可填寫(xiě)可不填寫(xiě)
執行器數量:節點(diǎn)同時(shí)運行的數量
遠程工作目錄:本機的工作目錄(/Users/songpeilun/jenkins)這需要有root權限的用戶(hù)對此文件所有權限
標簽:可填寫(xiě)可不填寫(xiě)
用法:盡可能對使用這個(gè)節點(diǎn)
啟動(dòng)方式:Launch agents via SSH
主機:本機的網(wǎng)絡(luò )ip地址(網(wǎng)絡(luò )-網(wǎng)絡(luò )設置-IP)
Credentials:選擇已添加的本機賬號密碼
Host Key Verification Strategy:Non verifying Veriflication Strategy
可用性:盡量保持代理在線(xiàn)
節點(diǎn)屬性--git:git的安裝路徑
然后啟動(dòng)節點(diǎn) 下面就表示啟動(dòng)成功,然后查看本地宿主機 目錄文件夾夾是否有節點(diǎn)的文件
說(shuō)一下方法3的具體邏輯,主要是在容器中運行代碼,git將代碼默認拉取到容器當中 不需要映射直接在容器中執行代碼(好處:不占用服務(wù)器的資源大小,隨時(shí)啟動(dòng);不需要本地啟動(dòng)服務(wù) 直接利用服務(wù)器地址就行 壞處:安裝麻煩一點(diǎn)😈 )
第一步:需要進(jìn)入jenkins容器當中
docker exec -itu root 容器id /bin/sh
下面有2種方法安裝 python3
1.weget 安裝(不推薦,基本和現安裝的方法差不多,先要安裝一些依賴(lài)包,如 gcc 等)
2.apk add 安裝(此版本是alpine :apk add,能夠快速安裝完成)
最后注意系統版本問(wèn)題:
如果是 centos 那即是 yum ; 如果是 ubuntu 那即是 apt-get ;如果是 alpine 那即是 apk
第二步:apk進(jìn)行安裝python3
cd /etc/apk/ echo "https://mirrors.ustc.edu.cn/alpine/v3.6/main/" > repositories echo "https://mirrors.ustc.edu.cn/alpine/v3.6/community/" >> repositories
更新apk源 這樣下載的比較快
apk update
第三步:使用apk add 安裝python3環(huán)境
apk add python3
第四步:更新pip3
pip3 install --upgrade pip 驗證python環(huán)境 python -V Pip3 -V
上面安裝成功后 就可以安裝第三方庫的插件了,已經(jīng)完成一半了
插件安裝 根據自己項目需要安裝 下面就以我的項目為列
第五步:安裝python 三方庫
首先創(chuàng )建requirements.txt 文件
pip freeze > requirements.txt
pip install -r requirements.txt
然后使用 vi requirements.txt 打開(kāi)文件進(jìn)行編輯
base64-test0926 ==1.0.0 PyMySQL==1.0.2 pytest==6.2.3 python-jenkins==1.7.0 PyYAML==5.4.1 redis==3.5.3 requests==2.25.1 SQLAlchemy==1.4.10 urllib3==1.26.4 wheel==0.36.2 allure-pytest==2.8.40 allure-python-commons==2.8.40 最后2個(gè)需要將Allure報告配置完成后在進(jìn)行安裝,不然會(huì )報錯
⚠️ 如果安裝出錯 不要著(zhù)急 慢慢找出原因 我之前出錯后 找了半天原因 是因為缺少greenlet 插件 (后面在為大家 提供方法)
如果沒(méi)有問(wèn)題 到這里就已經(jīng)安裝成功了,可以將自己的代碼cp 到容器當中 測試一下。沒(méi)有問(wèn)題后就可以打包鏡像了
本地文件拷貝到容器xx目錄當中
docker cp /Users/songpeilun/python_data/allure-2.13.0.zip jenkint_test:/xx目錄
我這里使用了Allure報告 所以要安裝
第六步:安裝allure報告
allure是一個(gè)解壓包,這里為大家提供一個(gè),下載后拷貝到容器當中 解壓
鏈接: 密碼: qfnv
#容器中解壓文件 unzip allure-2.13.0.zip #配置環(huán)境變量 vi /etc/profile PATH后面添加 :$PATH:/allure-2.13.0/bin(allure的全路徑) source /etc/profile 保存生效
第七步:驗證allure
allure --version
關(guān)注 持續更新...
到此這篇關(guān)于使用Docker+jenkins+python3環(huán)境搭建超詳細教程的文章就介紹到這了,更多相關(guān)Docker+jenkins+python3環(huán)境內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站