<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
自動化寫好後需要在伺服器上每日定時執行遇到,這樣的一個問題,Jenkins容器是在docker中安裝的 ,然後從git上拉取程式碼 發現程式碼在jenkins容器的目錄當中,執行的時候提示沒有安裝python環境還第三方庫。
解決方法有3種:
第一種:啟動jenkins容器時 將容器的目錄掛載到宿主機目錄上去執行(方法不能實現)Pass
第二種:在jenkins上建立本地節點,將程式碼拉取到本地 然後去執行本地專案(在本機上使用比較方便,但是侷限性比較小)
第三種:重新封裝jenkins映象,在jenkins映象中安裝python3的環境 在容器中執行專案(步驟麻煩,但後續永久使用)
第一種方法和第二種方法前提都需要在伺服器中安裝docker和jenkins映象
安裝dockerhttps://www.runoob.com/docker/docker-tutorial.html
1.查詢docker上的映象 docker search jenkins 2.下載自己所需要的映象 docker pull jenkinsci/blueocean 3.檢視是否下載成功 docker images 4.啟動下載的映象 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 #說明:docker run 執行 -d:後臺執行容器 -p:指定容器的埠對映 -p 10240:8080 表示將容器的8080埠對映到宿主機的10240埠上 ,對映多個埠使用 -p 8082:8080 -p 8083:8081 -v:掛載宿主機目錄和 docker容器中的目錄 /Users/songpeilun/jenkins_home 本地宿主機絕對目錄;/var/jenkins_home 容器目錄(將容器目錄掛載到本地) -v:/etc/localtime:/etc/localtime 本地時間和容器時間同步 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai 設定容器時間為上海時間(不然容器時間和本地時間相差8小時) --name jenkint_test 設定容器的名稱 jenkinsci/blueocean 選擇映象名稱啟動容器(預設映象後面會加latest 如果拉取自己建立的映象後面要加自己的版本號 jenkinsci/blueocean:版本號TAG ) ⚠️ 容器目錄掛載本地目錄時 一定要給本地資料夾賦予許可權 chmod 777 jenkins_home
輸入docker images檢視jenkins映象是否安裝成功
docker images
檢視容器是否執行
docker ps
可以看出docker中已經有執行的容器jenkins
這樣就說明 已經安裝好jenkins 現在就可以啟動jenkins了
瀏覽器輸入 伺服器的ip+埠號 http://47.99.98.250:10240/ 如果無法存取請關閉系統防火牆
檢視密碼的方式有2種,第一種是在伺服器的容器中檢視,第二種是在對映本地檢視(前提是你對映了本地目錄)
好了,到這裡就已經安裝好jenkins了
容器中檢視密碼:cat /var/jenkins_home/secrets/initialAdminPassword 對映本地目錄:cat /Users/songpeilun/jenkins_home/secrets/initialAdminPassword #/Users/songpeilun/jenkins_home 本地對映目錄地址
說一下方法2的具體邏輯,主要是新建jenkins的本地節點 利用新的節點將git上的程式碼拉取到本地(宿主機)上去執行程式碼
該方法主要適用於 本地已經有一套python3的一套環境,可以直接執行自動化 利用本地持續整合實現每日自動化報告(缺點:因為利用的是本地節點 利用宿主機地址當作ip 所以每次都需要開啟電腦和jenkins地址 且外網不能存取 侷限性小)
第一步:在jenkins當中安裝SSH Agent外掛
安裝 ssh Agent外掛 系統設定—外掛管理—可選外掛 然後輸入ssh agent 搜尋
第二步新增節點
系統設定—節點管理—新建節點(節點名稱不能重複)
說明:
節點名稱:名稱儘量用英文和字元不要用漢字(建立專案的時候選擇節點會有警告!)
節點描述:可填寫可不填寫
執行器數量:節點同時執行的數量
遠端工作目錄:本機的工作目錄(/Users/songpeilun/jenkins)這需要有root許可權的使用者對此檔案所有許可權
標籤:可填寫可不填寫
用法:儘可能對使用這個節點
啟動方式:Launch agents via SSH
主機:本機的網路ip地址(網路-網路設定-IP)
Credentials:選擇已新增的本機賬號密碼
Host Key Verification Strategy:Non verifying Veriflication Strategy
可用性:儘量保持代理線上
節點屬性--git:git的安裝路徑
然後啟動節點 下面就表示啟動成功,然後檢視本地宿主機 目錄資料夾夾是否有節點的檔案
說一下方法3的具體邏輯,主要是在容器中執行程式碼,git將程式碼預設拉取到容器當中 不需要對映直接在容器中執行程式碼(好處:不佔用伺服器的資源大小,隨時啟動;不需要本地啟動服務 直接利用伺服器地址就行 壞處:安裝麻煩一點😈 )
第一步:需要進入jenkins容器當中
docker exec -itu root 容器id /bin/sh
下面有2種方法安裝 python3
1.weget 安裝(不推薦,基本和現安裝的方法差不多,先要安裝一些依賴包,如 gcc 等)
2.apk add 安裝(此版本是alpine :apk add,能夠快速安裝完成)
最後注意系統版本問題:
如果是 centos 那即是 yum ; 如果是 ubuntu 那即是 apt-get ;如果是 alpine 那即是 apk
第二步:apk進行安裝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環境
apk add python3
第四步:更新pip3
pip3 install --upgrade pip 驗證python環境 python -V Pip3 -V
上面安裝成功後 就可以安裝第三方庫的外掛了,已經完成一半了
外掛安裝 根據自己專案需要安裝 下面就以我的專案為列
第五步:安裝python 三方庫
首先建立requirements.txt 檔案
pip freeze > requirements.txt
pip install -r requirements.txt
然後使用 vi requirements.txt 開啟檔案進行編輯
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個需要將Allure報告設定完成後在進行安裝,不然會報錯
⚠️ 如果安裝出錯 不要著急 慢慢找出原因 我之前出錯後 找了半天原因 是因為缺少greenlet 外掛 (後面在為大家 提供方法)
如果沒有問題 到這裡就已經安裝成功了,可以將自己的程式碼cp 到容器當中 測試一下。沒有問題後就可以打包映象了
本地檔案拷貝到容器xx目錄當中
docker cp /Users/songpeilun/python_data/allure-2.13.0.zip jenkint_test:/xx目錄
我這裡使用了Allure報告 所以要安裝
第六步:安裝allure報告
allure是一個解壓包,這裡為大家提供一個,下載後拷貝到容器當中 解壓
連結: https://pan.baidu.com/s/1JbBXOfA0j6saZh7H8RMipw 密碼: qfnv
#容器中解壓檔案 unzip allure-2.13.0.zip #設定環境變數 vi /etc/profile PATH後面新增 :$PATH:/allure-2.13.0/bin(allure的全路徑) source /etc/profile 儲存生效
第七步:驗證allure
allure --version
關注 持續更新...
到此這篇關於使用Docker+jenkins+python3環境搭建超詳細教學的文章就介紹到這了,更多相關Docker+jenkins+python3環境內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45