一、搭建方案
- 安装 VMware 或 VirtualBox 虚拟机
可参考:Windows安装VMware(简单详细)
虚拟机内存消耗较大,装个VMware,ubuntu,开发环境配置完,开启虚拟机,8g内存勉强扛得住。有一个小坑,VMware必须安装在c盘,安装在其他盘可能会导致一些功能失效。比如:将宿主机文件复制到虚拟机,会有无响应的情况。 - 安装WSL
适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。
windows子系统,WSL的开销低于VMware等虚拟机。安装的教程同样有很多。
可参考:win10安装wsl2
二、windows连接WSL-Linux环境
安装WSL后可以将开发环境全部转移到WSL内,在windows下运行vscode连接linux环境。WSL文档
-
在vscode内安装Remote-WSL插件,cmd输入wsl命令,在项目目录下 输入 code .。会在windows中弹出vscode。左下角显示,已经在WSL-Ubuntu环境下,在windows下写代码,子系统Ubuntu运行,同时vscode中打开的终端也是Ubuntu环境。
-
安装其他扩展
其他扩展需要安装在wsl环境下,只安装在本地环境部分插件无法在wsl环境下使用。
-
Docker
安装的教程很多,我说下遇到的几个小问题把。
WSL1是无法安装docker的,WSL1使用翻译层实现的,WSL2 使用 免维护VM,目前只能在WSL2中安装。
vscode内的docker插件无法直接连接到WSL内的docker,需要先安装Remote - Containers这个插件,使用这个插件连接到docker。 -
IntelliJ IDEA编辑器
无法识别WSL环境内的SDK,只能将SDK安装在windows下。意味着每次编译上线都需要指定linux。 -
ip重置
电脑重启后,WSL的IP地址会变化,ip地址不是固定的,这样意味着每次开机都需要修改代码中的ip地址。
解决方案:- 使用localhost代替具体的ip地址,localhost可以连接到WSL
- 设置静态IP
代码放入 .bat 文件内,管理员权限运行。@echo off setlocal enabledelayedexpansion wsl -u root ip addr add 192.168.50.16/24 broadcast 192.168.50.255 dev eth0 label eth0:1 netsh interface ip add address "vEthernet (WSL)" 192.168.50.88 255.255.255.0 wsl -u root service mysql start wsl -u root service docker start pause
查看windows和Ubuntu的IP地址就会发现多了一个ip。
可以将.bat文件放入windows启动目录下,实现开机自启。