到目前為止,我們只討論了使用Docker來部署應(yīng)用程序。然而,Docker也是一個極好的用于開發(fā)應(yīng)用程序的工具。可以采用一些不同的建議來改善開發(fā)體驗。
- 在應(yīng)用程序中使用
docker-compose
以方便開發(fā)。 - 使用綁定掛載將本地代碼掛載到容器文件系統(tǒng)中,以避免每次更改都需要重新構(gòu)建容器映像。
- 對于自動重載,您可以使用像vite這樣的工具用于客戶端,nodemon用于nodejs,或者air用于golang。
- 您還應(yīng)該提供一種調(diào)試應(yīng)用程序的方式。例如,使用delve進(jìn)行Go調(diào)試,在node.js中啟用調(diào)試使用--inspect標(biāo)志等等。無論您使用什么,重點是您應(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)部進(jìn)行測試!
持續(xù)集成(CI)
持續(xù)集成是指在將代碼推送到版本控制系統(tǒng)時自動執(zhí)行某些操作(例如構(gòu)建、測試等)的理念。
對于容器,我們可能需要執(zhí)行以下幾個操作:
- 構(gòu)建容器鏡像
- 執(zhí)行測試
- 掃描容器鏡像的漏洞
- 給鏡像打標(biāo)簽,附加有用的元數(shù)據(jù)
- 推送到容器注冊表
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:
公眾號 Let us Coding
,???/strong>,知乎,開源中國,CSDN,思否,掘金,InfoQ,簡書,博客園,慕課,51CTO,helloworld,騰訊開發(fā)者社區(qū),阿里開發(fā)者社區(qū)文章來源:http://www.zghlxwxcb.cn/news/detail-605329.html
看完如果覺得有幫助,歡迎點贊、收藏和關(guān)注文章來源地址http://www.zghlxwxcb.cn/news/detail-605329.html
到目前為止,我們只討論了使用Docker來部署應(yīng)用程序。然而,Docker也是一個極好的用于開發(fā)應(yīng)用程序的工具??梢圆捎靡恍┎煌慕ㄗh來改善開發(fā)體驗。
- 在應(yīng)用程序中使用
docker-compose
以方便開發(fā)。 - 使用綁定掛載將本地代碼掛載到容器文件系統(tǒng)中,以避免每次更改都需要重新構(gòu)建容器映像。
- 對于自動重載,你可以使用像vite這樣的工具用于客戶端,nodemon用于nodejs,或者air用于golang。
- 你還應(yīng)該提供一種調(diào)試應(yīng)用程序的方式。例如,使用delve進(jìn)行Go調(diào)試,在node.js中啟用調(diào)試使用--inspect標(biāo)志等等。無論你使用什么,重點是你應(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)部進(jìn)行測試!
持續(xù)集成(CI)
持續(xù)集成是指在將代碼推送到版本控制系統(tǒng)時自動執(zhí)行某些操作(例如構(gòu)建、測試等)的理念。
對于容器,我們可能需要執(zhí)行以下幾個操作:
- 構(gòu)建容器鏡像
- 執(zhí)行測試
- 掃描容器鏡像的漏洞
- 給鏡像打標(biāo)簽,附加有用的元數(shù)據(jù)
- 推送到容器注冊表
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:
公眾號 Let us Coding
,???/strong>,知乎,開源中國,CSDN,思否,掘金,InfoQ,簡書,博客園,慕課,51CTO,helloworld,騰訊開發(fā)者社區(qū),阿里開發(fā)者社區(qū)
看完如果覺得有幫助,歡迎點贊、收藏和關(guān)注
到了這里,關(guān)于Docker學(xué)習(xí)路線12:開發(fā)者體驗的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!