上篇博文中分享了如何用docker-compose搭建AspNetCore的开发环境,在开发过程中debug是必不可少的,如果你使用VS2017的话,右键就可以了,而作为跨平台的.net core开发的时候却要依赖VisualStudio,那一定算不上真正的跨平台,而且不是所有人都能买得起VS的许可证,买得起windows的授权,(我知道很多人都没买过:)所以这次来分享一下如何使用vscode在docker中debug。
我们知道vscode是可以远程debug的,参考OminiSharp的Wiki,其原理就是在服务器上安装.NetCore命令行调试工具VSDBG
,然后本地vscode通过ssh隧道建立和服务器之间的连接,控制服务器上的VSDBG
进行断点调试。
根据远程debug的启发,我们可以在docker中安装VSDBG
,vscode访问容器中的VSDBG
进行断点调试,原理和上面的远程debug一样,区别在于可以直接访问容器而不需要ssh。
首先通过命令
curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
记得2个月之前用这个命令无法安装的VSDBG
,因为里面的工具包下载不了,只能手动把对应版本的工具包下载下来,然后上传到自己的文件服务器,再替换脚本中的下载地址,折腾的好烦人。现在可以直接下载了,非常开心