a) 安裝Jenkins,安裝包下載地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/windows-stable/jenkins-2.73.1.ziplinux
b) 安裝 .NET core SDK,官網地址:https://www.microsoft.com/net/core#windowscmdweb
c) Linux 服務器一臺而且安裝好 Dockerdocker
d) 好壓軟件,下載地址:http://sw.bos.baidu.com/sw-search-sp/software/027b0d91ba34c/haozip_5.9.4.10795.exe。注意這不是廣告,咱們用他來壓縮咱們本地發佈好的源碼,由於他支持cmd命令,固然你也能夠用其餘的代替。爲了讓它支持cmd命令咱們還須要修改一下本地環境變量,右鍵【個人電腦】->【高級系統設置】->【高級】->【環境變量設置】->選擇系統變量【Path】->點擊【編輯】->點擊【新建】,把好壓的安裝目錄放進去。我好壓的安裝目錄是:C:\Program Files\2345Soft\HaoZipwindows
圖例:瀏覽器
a) Jenkins瀏覽器打開是否正常,默認打開地址:http://localhost:8080/。服務器
b) 檢查.NET core SDK是否安裝好, 打開命令窗口,輸入【dotnet】命令回車,會出來基本信息單元測試
圖例:學習
c) 檢查 Linux 服務器一臺而且安裝好 Docker,鏈接Linux命令窗口輸入【docker】,出來不少信息就對了。測試
圖例:ui
d) 檢查好壓軟件是否安裝好,windows下打開命令窗口,輸入【HaoZipC】,會出現說明。
圖例:
a) 本地運行單元測試(沒有能夠跳過)->發佈->上傳linux服務器->生成docker鏡像->docker容器運行
a) 安裝Jenkins插件,瀏覽器打開Jenkins,默認地址:http://localhost:8080/,進入【系統管理-】>插件管理->可選插件->輸入插件名稱->勾選須要插件->點擊【直接安裝】。
須要安裝的插件:
Hudson SCP publisher plugin 上傳文件插件
Publish Over SSH 鏈接liunx服務器執行名稱插件
Environment Injector Plugin 之定義變量存放插件
圖例:
b) Jenkins插件設置,進入系統管理->系統設置,
找到【SCP repository hosts】上傳插件設置位置:
Hostname:遠程liunx服務器 IP地址
Port:端口(默認22)
Root Repository Path:文件存放目錄
User Name:登入用戶名
Password/Passphrase:密碼
圖例:
找到【SSH Servers】鏈接liunx服務器插件設置:
Name:別名,能夠結合業務取
Hostname:遠程liunx服務器 IP地址
Username:登入用戶名
Remote Directory:鏈接默認工做目錄
Passphrase / Password:密碼
Port:鏈接端口(默認22)
圖例:
【點擊高級按鈕】
【勾選】Use password authentication, or use a different key
c) 建立項目,點擊【新建】->輸入項目名稱->選擇【構建一個自由風格的軟件項目】->點擊【OK】
圖例:
d) 配置項目,點擊【源代碼管理】->選擇【Subversion】
圖例:
選擇【構建環境】->勾選【Inject environment variables to the build process】,存放變量能夠不用
圖例:
選擇【構建】->點擊【增長構建步驟】->選擇【Execute Windows batch command】
圖例:
如今開始咱們能夠按照思路大綱來寫命令了。
1,運行測試腳本:
:: 切換CMD編碼
chcp 65001
:: 切換目錄
cd ./Boss.Web.Test/
:: 還原nuget包
dotnet restore
:: 運行測試
dotnet test
圖例:
2,發佈壓縮打包命令
:: 切換CMD編碼
chcp 65001
:: 切換目錄
cd ./Boss.Web/
:: 還原nuget包
dotnet restore
:: 編譯
dotnet build
:: 刪除以前發佈文件
cd ./bin
rd /s /q web-publish
del web-publish.zip
cd ..
:: 發佈
dotnet publish -o ./bin/web-publish
:: 刪除配置文件
cd ./bin/web-publish
rd /s /q config
cd ..
:: 壓縮 好壓軟件
HaoZipC a -tzip web-publish.zip "web-publish\*" -r
圖例:
到這邊本地構建工做作完了。
選擇【構建後操做】->點擊【增長構建後操做步驟】->選擇【Publish artifacts to SCP Repository】,準備上傳文件到服務器
圖例:
下拉選擇要上傳服務器地址(剛纔配置過的都在裏面),點擊【增長】,第一個上傳的是咱們的源代碼壓縮包,第二個是咱們要生成docker的依賴文件
圖例:
文件目錄查看
上傳文件好了,接下來咱們須要遠程鏈接到linux服務器
選擇【構建後操做】->點擊【增長構建後操做步驟】->選擇【Send build artifacts over SSH】
圖例:
遠程鏈接linux執行批處理命令,這個批處理命令咱們須要2個。
1,處理以前發佈內容,而且建立新docker鏡像( ${自定義變量},能夠換成字符)。
# 工做目錄
WORK_DIR="/root/boss-deploy/web/";
cd ${WORK_DIR}
# 刪除原有發佈文件夾
rm -rf web-publish;
# 解壓
unzip -o web-publish.zip
#刪除文件壓縮包
rm -f web-publish.zip;
#複製Dockerfile文件,到源碼目錄下
cp Dockerfile web-publish/Dockerfile
#切換生成目錄
cd web-publish/
#備份鏡像
#中止容器
docker stop ${DOCKER_CONTAINER_NAME};
#刪除容器
docker rm ${DOCKER_CONTAINER_NAME};
#刪除鏡像
docker rmi $(docker images | grep ${DOCKER_IMAGE_NAME} | awk '{print $3}' | sort -r);
#建立鏡像
docker build -t ${DOCKER_IMAGE_NAME}:${BOSS_VERSION}${SVN_REVISION} ./;
圖例:
2,依賴剛建立的鏡像,運行容器
#運行容器命令
docker run -d -v 服務器目錄:docker內部目錄 -p 8001:8001 --name 容器名稱 鏡像名稱:鏡像版本(沒有特定版本能夠不要)
圖例:
到此點擊【保存】,因此的配置就完成了。
返回首頁看到剛配置好的數據,點擊後面的構建就好了。
本文章到這裏就結束了,我也是第一次研究,若是有問題能夠留言,你們相互學習進步,謝謝!