我有 1 台 MBP ,1 台 8 代 U+8G RAM 轻薄 Windows 10 ,1 台 11 代 U+16G RAM 的轻薄 Windows 10 ,办公室 1 台 Windows 10 笔记本,此外还有 1 台装了 Linux 的机器。我的做法就是利用 Remote Development Container ,把项目的各种依赖弄到 Docker image 里,这样我随便拿起一台电脑就开始我的项目,无论电脑的配置有多渣( 8G 内存),无论电脑是不是装了.NET ,或者有些包对环境有依赖(我的项目的一个依赖包不提供 macOS 版本的原生库),或者是新买一台电脑,装上 VSCode 零设置就可以开始撸码。
这个听起来非常 appealing and exciting ,但是 docker 在我之前使用更像是个应用部署工具,对 docker 部署开发环境理解尚浅。之前看一些文档时候,看到过有的开发会把 python ,git 等等一系列开发工具都装在 docker 里,我没想到 Remote Development Container 这一层,所以当时没有特别在意,只是闪过一个念头:他们为什么要这么做?现在看起来这个方式确实是提升开发效率和复用性非常有帮助的。所以开贴向老鸟学个艺,也互相交流。
比如我现在需要做两个开发工作,在两台电脑 /服务器上。
一个是 vue+express 的,用 pnpm 去下载package.json里有一堆 dependencies ,完成开发后,docker 打包部署;
另一个是.Net 6 的开发,在 Windows 平台下安装 sdk ,用 msbuild.exe 去编译。
我可以每个开发目录里新建一个 dockerfile ,把所有的依赖都通过 FROM 的方式加载进对应的开发 image 中,然而,我理解的是,这是我所说的“完成开发后,docker 打包部署”的部分,而不完全等同我想表的的在 docker 里开发,比如我想在容器内改代码,使用 git 提交代码,或者使用 python 运行测试脚本,这些工作我都是在容器外完成的,显然这不是 Remote Development Container ,最多只是 Remote Development 。
抛砖引玉,多多指教