持續集成交付部署是什麼意思,它給我們帶來什麼好處? 先貼一張圖 持續集成(Continuous Integration) 持續集成強調開發人員提交了新代碼之後,立刻進行構建、(單元)測試(這個要看情況了是否需要) 持續交付(Continuous Delivery) 持續交付在持續集成的基礎上,將集成 ...
持續集成交付部署是什麼意思,它給我們帶來什麼好處? 先貼一張圖 持續集成(Continuous Integration)
- 持續集成強調開發人員提交了新代碼之後,立刻進行構建、(單元)測試(這個要看情況了是否需要)
- 持續交付在持續集成的基礎上,將集成後的代碼部署到更貼近真實運行環境的「類生產環境」(production-like environments)中。比如,我們完成單元測試後,可以把代碼部署到連接資料庫的 Staging 環境中更多的測試。如果代碼沒有問題,可以繼續手動部署到生產環境中。
- 持續部署則是在持續交付的基礎上,把部署到生產環境的過程自動化。
- 騰訊雲伺服器ubuntu一臺(自己先安裝好docker哈)
- vsts創建一個git(有微軟賬號就能免費創建,<=5人團隊是免費使用的,對於敏捷團隊綽綽有餘啦) https://www.visualstudio.com/zh-hans/team-services/
Source folder 輸入我們之前配置的別名 _test_netcore-docker 最終如下 然後再添加SSH執行命令工具 unzip -q site/drop/TestDotnetcore.zip -d site/drop/ 發佈的文件是zip的 通過這個命令解壓zip <TestDotnetcore.zip是我查看發佈的日誌找到的這個名字目前我還沒有找到變數可以代替> sudo rm -rf site/drop/*.zip 解壓完成後刪除掉 touch site/drop/Dockerfile 生成一個dockerfile echo "FROM microsoft/aspnetcore:2.0" >> site/drop/Dockerfile echo命令是往創建的dockerfile裡面寫入內容 echo "COPY . /publish" >> site/drop/Dockerfile echo "WORKDIR /publish" >> site/drop/Dockerfile echo "EXPOSE 5001" >> site/drop/Dockerfile echo "CMD [\"dotnet\", \"TestDotnetcore.dll\"]" >> site/drop/Dockerfile sudo docker build --rm -t test_image -f site/drop/Dockerfile site/drop/ 創建一個image 名字叫 test_image sudo docker ps -q --filter "name=test_netcore" | grep -q . && sudo docker rm -f test_netcore || true 查看是否有沒有叫 test_netcore的容器有沒有在runing 如果有就幹掉它 sudo docker run --name test_netcore -d -p 5001:5001 test_image:latest 根據test_image啟動一個名字叫test_netcore的容器 if sudo docker images -f "dangling=true" | grep ago --quiet; then sudo docker rmi -f $(sudo docker images -f "dangling=true" -q); fi 查看是否有<none>的image 把它刪掉 因為我們創建image的時候每次都會覆蓋所以會產生一些沒有的image sudo rm -rf site/drop 都ok了就刪掉drop目錄 以上一切準備好 提交一個commit到master試試 會自動觸發CI 進行 編譯 發佈 接下來Release發佈 發佈打包的成果物在這裡查看 發佈成功 查看下docker image 已經成功創建了test_image這個鏡像 容器是也跑成功了 驗證一下
完美!!!不管你用的是騰訊雲還是阿裡雲還是其他雲都是可以的! 遺留問題: TestDotnetcore.zip是我查看發佈的日誌找到的這個名字目前我還沒有找到變數可以代替 有誰知道幫忙教育下!