#############################################
安裝docker====https://www.cnblogs.com/poloyy/p/13921450.html
如果你還想從頭學起 Docker,可以看看這個系列的文章哦!
https://www.cnblogs.com/poloyy/category/1870863.html
前言
虛拟機安裝 centos 7.x 教程:https://www.cnblogs.com/poloyy/p/13921798.html
OS 安裝環境要求
- 要安裝 Docker Engine,需要 CentOS 7 的維護版本,不支援或未測試存檔版本(一句話:需要正常疊代版本的 Centos 7 系統,其他系統都不行)
- 必須啟用 centos-extras 存儲庫,該存儲庫預設情況下處于啟用狀态,但是如果已禁用它,則需要重新啟用它
- 建議使用 overlay2 存儲驅動程式
重點記下大佬說的話
- CentOS 6 因核心太舊,即使支援安裝 docker,但會有各種問題,不建議安裝
- CentOS 7 的 extras 源雖然可以安裝 docker,但包比較舊,建議從官方源或鏡像源站點下載下傳安裝 docker
- CentOS 8 有新技術 podman 代替 docker
- 是以建議在 CentOS 7 上安裝 docker
解除安裝舊版本 Docker
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
如果出現下圖就可以了
注意
- /var/lib/docker/ 下的内容(包括 images,containers,volumes,networks)被保留
- Docker Engine 軟體包現在稱為 docker-ce
安裝 Docker
有兩種方式,可供選擇
- 從 Docker 的 repositories 安裝,即 yum 的方式(推薦)
- 手動下載下傳并安裝 rpm 軟體包,需要完全手動管理更新版本
通過 yum 的方式安裝
配置 Docker Repository
在主機上首次安裝 Docker Engine之前,需要設定 Docker Repository,之後可以從 Repository 安裝和更新 Docker
# step 1: 安裝必要的一些系統工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加軟體源資訊,國内 Repository 更加穩定 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新 sudo yum makecache fast
安裝最新版本的 Docker Engine 和 Container
sudo yum install docker-ce docker-ce-cli containerd.io
注意
- 如果提示接受GPG密鑰,請驗證指紋是否與 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 比對,如果是,可接受
- 安裝成功後不代表 Docker 已成功,且 Docker 組雖已建立,但沒有使用者添加到該組
安裝指定版本的 Docker Engine
查找 docker-ce 的版本清單
sudo yum list docker-ce --showduplicates | sort -r
安裝指定版本的文法格式
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
來個栗子
sudo yum install docker-ce-19.03.13-3.el7 docker-ce-cli-19.03.13-3.el7 containerd.io
注意: 3: 是不用加的哈
啟動 Docker
sudo systemctl start docker
驗證 Docker Engine 是否已正确安裝
通過運作 hello-world 映像來驗證
sudo docker run hello-world
注意
建議使用 sudo 運作上面的指令,以便非特權使用者運作 Docker 指令以及其他可選配置 步驟
yum 的安裝方式二
可能官網的yum源太慢,下面使用阿裡雲的Yum源進行安裝
rm -rf /etc/yum.repos.d/* wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum clean all sudo yum install docker-ce docker-ce-cli containerd.io systemctl enable --now docker
更新 Docker Engine
直接指定最新版本的方式去安裝即可
下載下傳 rpm 包的安裝方式
下載下傳位址
- 官方rpm包下載下傳位址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
- 阿裡鏡像下載下傳位址:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/
安裝 rpm 包
将 下好的 rpm 包放到 Linux 任意目錄下
sudo yum install /root/package.rpm
啟動 Docker
sudo systemctl start docker
更新 Docker Engine
- 下載下傳對應的 rpm 包
- 通過 yum -y upgrade package.rpm 去更新
配置 Docker 鏡像加速
直接看下一篇文章:https://www.cnblogs.com/poloyy/p/13922074.html
解除安裝 Docker Engine
sudo yum remove docker-ce docker-ce-cli containerd.io
備注:主機上的 Images、containers、volumes、自定義配置檔案不會被删除
若要删除執行下面指令
sudo rm -rf /var/lib/docker
__EOF__
##############################################
部署Jenkins====https://www.jb51.net/article/192077.htm
使用碼雲搭建Git代碼存儲倉庫
https://gitee.com/login
- 使用碼雲建立私有私有git倉庫
- 将本地springboot項目上傳到git倉庫中
基于Docker安裝Jenkins環境
1.使用docker 安裝jenkins
1 | |
2.通路jenkins位址 8080
注意:第一次啟動的時候正在加載jenkins大概會等待3-10分鐘。
3.解鎖jenkins
1 2 3 | |
大概需要等待3-10分鐘
建立新的使用者
Jenkins全局工具配置
進入到jenkins容器中 echo $JAVA_HOME 擷取java環境安裝位址
JDK環境安裝
Maven環境安裝
安裝Jenkins對應Maven插件
找到 “系統管理“ - “安裝插件” ,點選 “可選插件”,找到如下maven插件的版本
插件名稱 Maven Integration
Jenkins實作Springboot項目自動部署建立一個釋出任務
配置任務git賬号密碼
3.項目打包
1 | |
點選立即建構
第一次建構可能耗時比較長,因為需要下載下傳一些相關依賴jar包
Jenkins啟動成功之後執行shll腳本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
加nohub 指的是背景運作,或者使用nohub &
容器映射8081端口
1. 重新開機容器
1 | |
2. 清空未運作的容器
1 | |
1 | |
到此這篇關于基于Docker+Jenkins實作自動化部署的文章就介紹到這了,更多相關Docker+Jenkins實作自動化部署内容請搜尋腳本之家以前的文章或繼續浏覽下面的相關文章希望大家以後多多支援腳本之家!
#############################################
配置Jenkins====https://www.cnblogs.com/poloyy/p/13955641.html
如果你還想從頭學起 Docker,可以看看這個系列的文章哦!
https://www.cnblogs.com/poloyy/category/1870863.html
搭建 Jenkins 容器
就是實戰第一篇文章:https://www.cnblogs.com/poloyy/p/13954637.html
Jenkins 初始化流程
通路 Jenkins
檢視本機 IP
ifconfig
檢視容器運作端口
docker ps
我的是用主機 80 端口映射到容器的 8080 端口
浏覽器通路 Jenkins
http://ip:80
檢視管理者密碼
進入到頁面
檢視密碼有兩種方式
第一種:檢視容器日志
docker logs jenkins1
打碼那一行就是密碼哦
第二種: 去檔案夾檢視
cat /var/jenkins_node/secrets/initialAdminPassword
- 因為我建立 Jenkins 容器時,将主機的 /var/jenkins_node 目錄映射了容器的 /var/jenkins_home 目錄
- 是以可以直接在主機查到管理者密碼,而無需進入容器再檢視
初始化流程
建立管理者使用者
自己配啥記住就行了,沒啥特别要求
執行個體配置
預設會給一個位址的,不改也可以
配置完成
進入主界面
下載下傳插件
需要的插件 gitlab、gitlab hook、allure
在它安裝完後,自己重新開機 Jenkins 容器
docker restart jenkins1
将插件源切換國内源
直接看這個教程:https://www.cnblogs.com/poloyy/p/12785401.html
Jenkins 漢化
直接看這個教程:https://www.cnblogs.com/poloyy/p/13955209.html
Jenkins 全局工具設定
配置 JDK
配置 Git
配置 allure
應用儲存!即可!
Jenkins 郵件功能測試
配置 Extended E-mail Notification
自定義電子郵=件通知的預設收件人清單
- 可以在項目中使用 $DEFAULT_RECIPIENTS ,來包含此預設收件人清單(下面建立項目時講到這個變量)
- 若要向某人抄送或密件抄送,不是将其放在“收件人”清單中,請在電子郵件位址之前添加 cc: 或密件抄送 bcc: (例如:cc:[email protected],bcc:[email protected])
配置郵箱通知
使用 Jenkins 實作自動化測試
将項目放到主機映射到容器的目錄下
通過 xftp 将項目上傳到主機
這是我自己的一個 pytest 項目
驗證項目能正常跑
進入容器内,在項目檔案夾愛内執行 pytest 指令
有 28 個測試用例都跑通了哦
Jenkins 建立任務工程
建立任務
Jenkins 任務配置建構後操作
在完成系統設定後,還需要給需要建構的項目進行郵件配置
重點:這裡就有 $DEFAULT_RECIPIENTS ,上面也有講到這個環境變量,預設收件人清單,如果需要添加新的收件郵件,需要用 , 隔開
郵件模闆
直接複制粘貼到内容框就行
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次建構日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> 本郵件由系統自動發出,無需回複!<br/> 各位同僚,大家好,以下為${PROJECT_NAME }項目建構資訊</br> <td><font color="#CC0000">建構結果 - ${BUILD_STATUS}</font></td> </tr> <tr> <td><br /> <b><font color="#0B610B">建構資訊</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>項目名稱 : ${PROJECT_NAME}</li> <li>建構編号 : 第${BUILD_NUMBER}次建構</li> <li>觸發原因: ${CAUSE}</li> <li>建構狀态: ${BUILD_STATUS}</li> <li>建構日志: <a href="${BUILD_URL}console" target="_blank" rel="external nofollow" >${BUILD_URL}console</a></li> <li>建構 Url : <a href="${BUILD_URL}" target="_blank" rel="external nofollow" >${BUILD_URL}</a></li> <li>工作目錄 : <a href="${PROJECT_URL}ws" target="_blank" rel="external nofollow" >${PROJECT_URL}ws</a></li> <li>項目 Url : <a href="${PROJECT_URL}" target="_blank" rel="external nofollow" >${PROJECT_URL}</a></li> <li>測試報告: <a href="${PROJECT_URL}allure" target="_blank" rel="external nofollow" >${PROJECT_URL}allure</a></li> </ul> <h4><font color="#0B610B">失敗用例</font></h4> <hr size="2" width="100%" /> $FAILED_TESTS<br/> <h4><font color="#0B610B">最近送出(#$SVN_REVISION)</font></h4> <hr size="2" width="100%" /> <ul> ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"} </ul> 詳細送出: <a href="${PROJECT_URL}changes" target="_blank" rel="external nofollow" >${PROJECT_URL}changes</a><br/> </td> </tr> </table> </body>
最後儲存
進行第一次建構
檢視控制台輸出
郵件發送成功!!
Jenkins 任務配置建構操作
主要兩個任務
- 配置 pytest 指令
- 生成 allure 報告
配置 pytest 指令
#!/bin/bash cd /var/jenkins_home/waimai pytest -s -q --alluredir=${WORKSPACE}/allure-reports --clean-alluredir exit 0
生成 allure 報告
這張圖是重點哦
儲存!!就成功了!
進行第二次建構
檢視 allure 報告
################################################
CICD等Jenkins實戰
https://blog.csdn.net/wzh1070/article/details/80853277
https://blog.51cto.com/lizhenliang/2159817
https://blog.csdn.net/jackyzhousales/article/details/81713004
https://www.cnblogs.com/xyou/p/10674774.html
容器化部署Jenkins
安裝docker====https://www.cnblogs.com/poloyy/p/13921450.html
部署Jenkins====https://www.jb51.net/article/192077.htm
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
7ce7f30f2eac4e1b82fc49b15da09298
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
docker exec -it 1e293dd77dde /bin/bash
問題:
jenkins配置https://www.cnblogs.com/poloyy/p/13955641.html
qq郵箱密碼 iuyhzsdxeeeijhfd
解決郵件發送錯誤:503 Error: need EHLO and AUTH first
https://blog.csdn.net/lingfeian/article/details/96731620
501 mail from address must be same as authorization user
https://blog.csdn.net/qq_33801641/article/details/107195879