使用Jenkins来发布和代理.NetCore项目
Back to
Study!
注:書接上文,上回《【CI/CD系列】使用Docker安裝Jenkins》咱們說到了使用Docker鏡像的方式,來建立Jenkins服務,用來持續集成和持續發布項目,但是上一篇文章有兩個問題:
01
創建的容器不能操作和使用宿主機的docker,導致我們無法在Jenkins服務中去使用docker命令去構建asp.netcore項目鏡像。
02
文章只是重點講解了下如何構建和配置Jenkins服務應用,那接下來如何發布項目和代理項目,沒有具體說明。
所以今天就重點說一下這兩點,其實也是很簡單的,昨天的基本內容已經三分之二了,今天就是簡單的補充說明一下。
PS:最終的鏡像,我已經推送到dockerHub上了,可以自行pull下來,然后按照下文的命令執行下即可。
當然相關的視頻版本我會接下來的兩周,配合著我的六個項目遷移的時候進一步講解,現在我已經在生產環境構建好了,域名就是:
http://jenkins.neters.club
下一步就是把項目遷移了,這樣就能省很多時間,甚至就不需要登錄服務器操作了。
1、生成新容器
同時支持 SDK 和 Docker 的容器實例
還是昨天的鏡像文件,只不過這次啟動容器實例的命令不一樣了,用這個:
第一行表示啟動一個容器名為Jenkins2的對外開放3001端口實例。
第二行表示將宿主機上面的docker命令行工具掛載到容器中,使jenkins用戶能夠執行docker命令。
第三行表示將宿主機上的docker.sock掛載到容器中的相應位置,使得容器中的dockercli能跟宿主機的docker通信。
第四行表示掛載我們創建的配置文件存放目錄到指定的文件夾。
啟動好了以后,就可以瀏覽器里正常的訪問{ip}:3001端口了,接下來就是和上篇文章里說的一樣,無腦配置一波就行了。
配置的過程中,如果插件有安裝失敗的,不用擔心,只要能繼續我往下走,就沒事,因為后臺管理里,我們可以繼續安裝的:
這個時候我們可以進入到容器里,執行命令,可以看到該有的命令都有了:
如果僅僅是查看Jenkins密碼,不用進入也可以,直接一句話即可
是不是很方便。
2、構建項目
創建一個Jenkins工程,使用CLI構建netcore應用
01、首先還是需要一個實例項目
在上篇文章中,我們創建了一個空的webapi項目,現在要創建Docker項目了,肯定就需要一個Dockerfile文件了:
這個每個人肯定都能看懂,因為是vs官方給我們創建的,只不過要注意一點,注意路徑問題,要放到項目根目錄,也就是和vs同級目錄。
02、配置Jenkins工作任務
基本的和上篇文章一樣,還是一個自由風格的模式,配置Git地址,和構建命令。
之所以注釋了,是因為第一次構建,宿主機里不存在容器和鏡像,以后每次修改代碼,都是刪掉容器和鏡像,重新生成。
但是,上邊用的Dockerfile是vs官方給我們默認創建的,如果是國內的服務器,構建的時候會特別慢,那我們就用第二種方案,先發布再構建鏡像,而不是在構建鏡像的過程中發布,這樣的話構建鏡像的時候,可以使用國內的一些源鏡像。
首先配置鏡像文件Dockersfile,注意這個是在最終的publish文件夾里,所以我就右鍵屬性,始終復制了:
然后編輯我們的Jenkins的構建shell命令:
03、點擊構建,查看結果
可以看到我們在Jenkins中,構建了一個hello-world-docjek的項目鏡像,然后生成了一個容器實例。
因為我們的Docker是宿主機的,可以在宿主機查看全部容器:
而且用Jenkins是直接將端口映射到公網的,直接訪問{ip}:5055,就可以看到效果了,比如我們剛剛測試的我的http://neters.club:5055/weatherforecast:
04、Nginx做域名匹配和反向代理
剩下的就是很簡單了,簡單的在nginx里配置下就行了,將端口映射到域名下,然后配置下跨域的反向代理,整體的開發流程就是這么簡單。
以后我們每次修改代碼,就可以直接在Jenkins里構建一下,然后就能快速的部署了,是不是很方便。
當然,最后還有發郵件推送消息,編輯觸發器,視圖管理,docker-compose編排或者其他的知識點,等待視頻的時候再說吧。
總結
以上是生活随笔為你收集整理的使用Jenkins来发布和代理.NetCore项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【翻译】.NET 5 Preview8发
- 下一篇: .NET Core实用技巧(一)如何将E