1、簡介node
以前寫過一篇關於Jenkins搭配GitLab實現.net core項目自動發佈到IIS的博文,比較簡單哈,只是個Demo。本篇咱們將會使用Jenkins搭配GitLab實現鏡像的自動打包和上傳,這篇實際上是一個鋪墊篇,由於後面咱們須要使用Jenkins實現kubernetes的發佈流水線,即實現鏡像的自動化打包和部署。git
2、打包鏡像web
Jenkin的安裝和使用在.Net Core自動化部署系列(一)中已經介紹過了哈,若是沒有安裝過的同窗能夠去看下,這裏我使用windows版本的Jenkins。docker
咱們須要爲Jenkins安裝一個docker-build-step的插件,系統管理-插件管理,而後Ctrl+F搜索一下:windows
咱們須要新建一個空的.net core api項目,而且把它上傳到GitLab,同時還有Dockerfile,新建項目WebTest,Dockerfile以下:api
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app EXPOSE 80 FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src Copy . . RUN dotnet restore RUN dotnet build -c Release -o /app FROM build as publish RUN dotnet publish -c Releease -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "WebTest.dll"]
好了 上傳完成後咱們就不須要管了,而後再Jenkins新建一個流水線項目Pipline_Test:app
而後設置一下保留近七天的10次發佈記錄,你們能夠根據實際狀況設置哈,可選:測試
而後就是流水線的發佈腳本了:ui
我先粘貼一下流水線腳本,而後再詳細介紹下,其實也蠻簡單的:url
node{ stage('git下載'){ git credentialsId: 'f2d1ca50-1916-46b6-af06-6ee817f31294', url: 'https://git.lug.ustc.edu.cn/DeepmountainMoose/apitest.git' } stage('構建'){ bat ''' cd "%WORKSPACE%/WebTest" docker build -t xxx/webtest . ''' } stage('上傳到倉庫'){ bat ''' docker login -u xxx -p xxx docker push xxx/webtest docker rmi xxx/webtest ''' } }
首先是git的項目下載,這裏的語句是經過截圖的語法介紹自動生成的,點擊Pipeline Syntax 以下:
而後是第二步「構建」,由於我這裏是windows,因此批處理命令須要用bat,若是是Linux請使用sh,構建的腳本比較簡單,就是cd到項目目錄下,打包鏡像哈。
打包完成後就是上傳到鏡像倉庫,我這裏上傳的是Docker Hub,若是是我的的私有鏡像倉庫,酌情修改。
而後咱們點擊OK,退回到項目主頁,就能夠點擊當即構建了,如下是構建日誌:
鏡像構建成功,而且上傳到了DockerHub,其實到這裏若是咱們就能夠編寫鏡像部署的命令來直接發佈鏡像的。
固然,鏡像的發佈流水線確定不是編譯-打包-發佈這麼簡單的,還須要測試環境-UT環境-正式環境,以及包含的自動化測試。