前言
在线IDE目前表现比较好的有云效,其功能主要还是以Web方式提供在线vscode集成开发环境,启动编辑环境初步推断为内部启动一个专用语言的虚拟机或者容器,clone源码。优点是客户端只需要一个浏览器,缺点是需要熟悉vscode开发环境,对习惯IDEA的开发者不太友好,且部分快捷键由于浏览器问题不能正常使用。
本文探索另外一个在线IDE方案,采用docker容器技术提供底层计算、存储环境,通过x11vnc-desktop在字符界面服务器容器内开启一个图形界面,通过vnc协议对外提供服务。用户通过浏览器vnc协议打开的是一个类似云端主机的远程桌面,在远程桌面内使用熟悉的IDEA进行开发工作。
与云主机(虚拟机)对比,docker方案的核心优势是轻量化,启动快,占用资源少,挂载数据盘方便。
一、编译x11vnc-desktop docker镜像
系统准备
开启ip转发
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
下载源码
git clone https://gitee.com/hknarutofk/x11vnc-desktop.git
解决适配问题
修改Dockerfile.arm64,差异如下
diff --git a/Dockerfile.arm64 b/Dockerfile.arm64
index 12a0bb4..9e4dca6