Asp.net core 在Docker中進行調試和發布


准備工作:安裝Docker並運行

一,在Docker中調試Asp.net core應用

1,右鍵項目,添加/Docker支持,項目根目錄多自動新增一個名為Dockfile的文件

2,按F5進行高度,首次運行這個過程很漫長,還很有可能不成功,提示信息:C:\Users\Administrator\vsdbg\vs2017u5 exists, deleting,可以如下解決

按提示中的版本到以下地址下載兩個文件

https://vsdebugger.azureedge.net/vsdbg-16-3-10904-1/vsdbg-linux-x64.zip

https://vsdebugger.azureedge.net/vsdbg-16-3-10904-1/vsdbg-linux-musl-x64.zip

,把版本號換成使用的版本號。

不過這和在VS中下載一個樣,慢得不行,我下好了“16.3.10904.1”版本在以下雲盤,需要的自行提取,提取碼:2z1p

https://pan.baidu.com/s/1TSXG0GSbTe8iD5OFXMskaw 

下好以后,把vsdbg-linux-x64中的所有文件復制到C:\Users\Administrator\vsdbg\vs2017u5目錄。在vs2017u5目錄中新建一個子文件夾:linux-musl-x64,把vsdbg-linux-musl-x64中的所有文件復制到該目錄。

在linux-musl-x64目錄中新建二個txt文件:success_rid.txt以及success_version.txt,編輯success_rid.txt內容為:linux-musl-x64,編輯success_version.txt內容為使用的版本號:16.3.10904.1。

把這兩個txt文件復制一份到vs2017u5目錄,修改vs2017u5目錄中的success_rid.txt內容為:linux-x64。

重新啟動調試即可。

二,發布Asp.net core程序到Docker.

1,打開一個命令行,利用docker build指令創建鏡像

 docker build -t liu:v1 --force-rm  -f E:/identity/src\IdentityServer/Dockerfile E:/identity

參數說明:

-t:-tag 設置鏡像標簽,可以用來指定鏡像版本。

--force--rm:強制刪除臨時鏡像

-f:指定Dockfile文件地址

E:/identity:上下文根目錄,此處為解決方案目錄(sln存在目錄)

2,以此鏡像運行一個容器

使用Docker images 指定查詢鏡像ID

 

 使用Docker run指令運行一個容器

docker run -v c:\vol:/app/wwwroot/upload -p 5005:80  -it  bea955806474 bash

 

參數說明:

-v: -volum,掛載本地目錄到Docker容器。 c:\vol為本地目錄,/app/wwwroot/upload為容器目錄。由於容器本身不會持久化存儲數據,必需掛載到本地目錄,以防容器刪除后數據丟失。

-p:端口映射。5005為本機端口,80為容器端口

-it:-input-terminal。開啟一個新的輸入終端。

bea955806474:鏡像ID

bash:運行的容器指令,如果Dockerfile沒有指定ENTRYPOINT則直接執行該指令,如果有指定,則將該指定加在ENTRYPOINT后。

run完成后,使用Docker ps指令查看正在運行的容器。直接訪問http://localhost:5005即可。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM