Docker + VS Code 搭建开发环境
通过 VS Code + Docker container 的方案,解决 vagrant + virtual box 在 macos M1 上无法使用的问题

开发过程需要在 macOS 搭建轻量的开发环境,原先是使用 vagrant + virtualbox,升级到 M1 芯片之后由于 virtualbox 只支持 x86 导致无法使用。在寻求其它解决方案的时候发现多少都有一点问题:
- UTM 支持 vagrant 社区还在开发中,短期内没法生产使用
- Parallel 收费明显不合理,直接 pass
- VMware Fusion 目前支持 M1 还是公测版,还没有公布费用打算再等等
- 购买云厂商 ECS/VPS,还是存在费用问题
上述原因导致我选择了使用 Docker container + VS Code 搭建自己轻量的开发环境,如果涉及到 Kernel、VMM、硬件相关的开发环境问题,这个方案就不适用了,这种情况最好的解决方案还是 VM(后续等 VMware Fusion 稳定之后还是会选择的这个方案)。这篇文章主要是 Docker + VS Code 搭建轻量开发环境的过程。
1. 制作 Docker 镜像
根据上面的 Dockerfile 制作支持 ssh login 的镜像:
2. 启动镜像
3. VS Code 连接 Docker container
3.1 Remote SSH 插件
在 VS Code 安装 Remote SSH 插件:

3.2 Remote SSH 配置
如下图所示,增加 SSH Host 配置:

Docker container 的 SSH 配置如下所示:

3.3 VS Code 启动 Remote SSH
如下图所示,VS Code 连接到 Docker container:

4. 增强配置
4.1 语言开发环境配置
至此,基于 Docker container 的 VS Code 开发环境就搭建完成,后续就需要按需增加开发编译的环境,例如在 Dockerfile 中增加 go 的支持:
python、rust 等开发环境也是类似的,当然 apt/yum install
也是可以的。
4.2 自动化
将上述过程自动化,启动 docker + VS Code 开发环境只需要一个命令:make startup
,Makefile 如下所示: