最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Docker學(xué)習(xí)路線12:開發(fā)者體驗

2023-07-26 19:34 作者:小萬哥丶  | 我要投稿

到目前為止,我們只討論了使用Docker來部署應(yīng)用程序。然而,Docker也是一個極好的用于開發(fā)應(yīng)用程序的工具。可以采用一些不同的建議來改善開發(fā)體驗。


?在應(yīng)用程序中使用docker-compose以方便開發(fā)。?使用綁定掛載將本地代碼掛載到容器文件系統(tǒng)中,以避免每次更改都需要重新構(gòu)建容器映像。?對于自動重載,您可以使用像vite[1]這樣的工具用于客戶端,nodemon[2]用于nodejs,或者air[3]用于golang。?您還應(yīng)該提供一種調(diào)試應(yīng)用程序的方式。例如,使用delve[4]進行Go調(diào)試,在node.js中啟用調(diào)試使用--inspect標志等等。無論您使用什么,重點是您應(yīng)該有一種方法來調(diào)試在容器內(nèi)運行的應(yīng)用程序。?您應(yīng)該有一種在容器內(nèi)運行測試的方法。例如,您可以有一個單獨的docker-compose文件來運行測試。?您應(yīng)該擁有一個用于生產(chǎn)映像的CI流水線。?每個拉取請求都應(yīng)該有一個臨時環(huán)境。


Hot Reloading in Docker


即使我們啟用了層緩存以加速鏡像構(gòu)建,我們也不想在每次代碼更改時都重建容器鏡像。相反,我們希望容器中的應(yīng)用程序狀態(tài)立即反映更改。我們可以通過綁定掛載和熱重新加載工具的組合來實現(xiàn)這一點!


在 Docker 中使用調(diào)試器


為了使容器開發(fā)與本地開發(fā)具有競爭力,我們需要能夠在容器內(nèi)運行和附加調(diào)試器。


測試


我們希望在盡可能接近生產(chǎn)環(huán)境的情況下運行測試,因此最好在容器內(nèi)部進行測試!


持續(xù)集成(CI)


持續(xù)集成是指在將代碼推送到版本控制系統(tǒng)時自動執(zhí)行某些操作(例如構(gòu)建、測試等)的理念。


對于容器,我們可能需要執(zhí)行以下幾個操作:


?構(gòu)建容器鏡像?執(zhí)行測試?掃描容器鏡像的漏洞?給鏡像打標簽,附加有用的元數(shù)據(jù)?推送到容器注冊表


最后


為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:


公眾號?Let us Coding,牛客[5],知乎[6]開源中國[7],CSDN[8],思否[9],掘金[10],InfoQ[11]簡書[12],博客園[13]慕課[14],51CTO[15]helloworld[16],騰訊開發(fā)者社區(qū)[17],阿里開發(fā)者社區(qū)[18]


看完如果覺得有幫助,歡迎點贊、收藏關(guān)注


到目前為止,我們只討論了使用Docker來部署應(yīng)用程序。然而,Docker也是一個極好的用于開發(fā)應(yīng)用程序的工具。可以采用一些不同的建議來改善開發(fā)體驗。


?在應(yīng)用程序中使用docker-compose以方便開發(fā)。?使用綁定掛載將本地代碼掛載到容器文件系統(tǒng)中,以避免每次更改都需要重新構(gòu)建容器映像。?對于自動重載,你可以使用像vite[19]這樣的工具用于客戶端,nodemon[20]用于nodejs,或者air[21]用于golang。?你還應(yīng)該提供一種調(diào)試應(yīng)用程序的方式。例如,使用delve[22]進行Go調(diào)試,在node.js中啟用調(diào)試使用--inspect標志等等。無論你使用什么,重點是你應(yīng)該有一種方法來調(diào)試在容器內(nèi)運行的應(yīng)用程序。?你應(yīng)該有一種在容器內(nèi)運行測試的方法。例如,你可以有一個單獨的docker-compose文件來運行測試。?你應(yīng)該擁有一個用于生產(chǎn)映像的CI流水線。?每個拉取請求都應(yīng)該有一個臨時環(huán)境。


Hot Reloading in Docker


即使我們啟用了層緩存以加速鏡像構(gòu)建,我們也不想在每次代碼更改時都重建容器鏡像。相反,我們希望容器中的應(yīng)用程序狀態(tài)立即反映更改。我們可以通過綁定掛載和熱重新加載工具的組合來實現(xiàn)這一點!


在 Docker 中使用調(diào)試器


為了使容器開發(fā)與本地開發(fā)具有競爭力,我們需要能夠在容器內(nèi)運行和附加調(diào)試器。


測試


我們希望在盡可能接近生產(chǎn)環(huán)境的情況下運行測試,因此最好在容器內(nèi)部進行測試!


持續(xù)集成(CI)


持續(xù)集成是指在將代碼推送到版本控制系統(tǒng)時自動執(zhí)行某些操作(例如構(gòu)建、測試等)的理念。


對于容器,我們可能需要執(zhí)行以下幾個操作:


?構(gòu)建容器鏡像?執(zhí)行測試?掃描容器鏡像的漏洞?給鏡像打標簽,附加有用的元數(shù)據(jù)?推送到容器注冊表


最后


為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:


公眾號?Let us Coding,???/strong>[23],知乎[24],開源中國[25],CSDN[26],思否[27],掘金[28],InfoQ[29]簡書[30],博客園[31],慕課[32],51CTO[33],helloworld[34],騰訊開發(fā)者社區(qū)[35]阿里開發(fā)者社區(qū)[36]


看完如果覺得有幫助,歡迎點贊、收藏關(guān)注


相關(guān)鏈接


[1]?vite:?https://vitejs.dev/
[2]?nodemon:?https://nodemon.io/
[3]?air:?https://github.com/cosmtrek/air
[4]?delve:?https://github.com/go-delve/delve
[5]????/strong>:?https://www.nowcoder.com/users/752272586
[6]?知乎:?https://www.zhihu.com/people/11-78-37-92/posts
[7]?開源中國:?https://my.oschina.net/u/5599376
[8]?CSDN:?https://blog.csdn.net/2302_76489021?type=blog
[9]?思否:?https://segmentfault.com/u/caisekongbai/articles
[10]?掘金:?https://juejin.cn/user/3162666248713837/posts
[11]?InfoQ:?https://www.infoq.cn/profile/75CD8E259D2070/publish
[12]?簡書:?https://www.jianshu.com/u/75146b564de0
[13]?博客園:?https://www.cnblogs.com/xiaowange/
[14]?慕課:?https://www.imooc.com/u/index/articles
[15]?51CTO:?https://blog.51cto.com/xiaowange
[16]?helloworld:?https://www.helloworld.net/6389284992
[17]?騰訊開發(fā)者社區(qū):?https://cloud.tencent.com/developer/user/10282289
[18]?阿里開發(fā)者社區(qū):?https://developer.aliyun.com/profile/ssy2zbcsdghuk
[19]?vite:?https://vitejs.dev/
[20]?nodemon:?https://nodemon.io/
[21]?air:?https://github.com/cosmtrek/air
[22]?delve:?https://github.com/go-delve/delve
[23]????/strong>:?https://www.nowcoder.com/users/752272586
[24]?知乎:?https://www.zhihu.com/people/11-78-37-92/posts
[25]?開源中國:?https://my.oschina.net/u/5599376
[26]?CSDN:?https://blog.csdn.net/2302_76489021?type=blog
[27]?思否:?https://segmentfault.com/u/caisekongbai/articles
[28]?掘金:?https://juejin.cn/user/3162666248713837/posts
[29]?InfoQ:?https://www.infoq.cn/profile/75CD8E259D2070/publish
[30]?簡書:?https://www.jianshu.com/u/75146b564de0
[31]?博客園:?https://www.cnblogs.com/xiaowange/
[32]?慕課:?https://www.imooc.com/u/index/articles
[33]?51CTO:?https://blog.51cto.com/xiaowange
[34]?helloworld:?https://www.helloworld.net/6389284992
[35]?騰訊開發(fā)者社區(qū):?https://cloud.tencent.com/developer/user/10282289
[36]?阿里開發(fā)者社區(qū):?https://developer.aliyun.com/profile/ssy2zbcsdghuk



Docker學(xué)習(xí)路線12:開發(fā)者體驗的評論 (共 條)

分享到微博請遵守國家法律
临洮县| 新津县| 昌乐县| 瓮安县| 铁岭市| 二连浩特市| 阿鲁科尔沁旗| 宁德市| 涟源市| 枣庄市| 镇巴县| 天镇县| 太保市| 阿城市| 郓城县| 西乡县| 深水埗区| 定安县| 建瓯市| 望谟县| 涟源市| 娄烦县| 西乌| 罗甸县| 芷江| 德钦县| 通海县| 新巴尔虎右旗| 舒兰市| 汶上县| 洪雅县| 石首市| 喀什市| 宁津县| 师宗县| 镇江市| 临猗县| 巍山| 潼南县| 莫力| 墨竹工卡县|