200块钱3小时上门二维码-400元3小时快餐,约附近学生50一次,51品茶快约

行业动态

「干货」银河麒麟服务器操作系统V10在线IDEA arm64开发环境方案

作者:admin 日期:2023-09-10 浏览:

「干货」银河麒麟服务器操作系统V10在线IDEA arm64开发环境方案

本文为大家分享银河麒麟高级服务器操作系统V10上基于Docker、x11vnc-desktop打造基于容器的在线IDEA arm64开发环境方案,请大家多多点赞、收藏、评论、关注[来看我]!

在线IDE目前表现比较好的有云效,其功能主要还是以Web方式提供在线vscode集成开发环境,启动编辑环境初步推断为内部启动一个专用语言的虚拟机或者容器,clone源码。优点是客户端只需要一个浏览器,缺点是需要熟悉vscode开发环境,对习惯IDEA的开发者不太友好,且部分快捷键由于浏览器问题不能正常使用。

本文探索另外一个在线IDE方案,采用docker容器技术提供底层计算、存储环境,通过x11vnc-desktop在字符界面服务器容器内开启一个图形界面,通过vnc协议对外提供服务。用户通过浏览器vnc协议打开的是一个类似云端主机的远程桌面,在远程桌面内使用熟悉的IDEA进行开发工作。

与云主机(虚拟机)对比,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 100644

--- a/Dockerfile.arm64

+++ b/Dockerfile.arm64

@@ -167,5 +167,6 @@ WORKDIR $DOCKER_HOME

ENV DOCKER_CMD=start_vnc

USER root

-ENTRYPOINT ["/sbin/my_init", "--quiet", "--", "/sbin/setuser", "ubuntu"]

+# fix kylin server V10 bug: permission denied, use root user

+ENTRYPOINT ["/sbin/my_init", "--quiet", "--", "/sbin/setuser", "root"]

CMD ["$DOCKER_CMD"]

将启动用户由ubuntu改为root,原因是麒麟V10环境打包镜像部分目录权限错误

编译镜像

cd x11vnc-desktop/

sh buildArm64Image.sh

查看编译出来的镜像

[root@172-17-98-9 x11vnc-desktop]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

x11vnc/desktop latest c7f04e0b9cb5 14 seconds ago 1.43GB


1.启动一个实例

docker run -it --rm -p 6080:6080 x11vnc/desktop:latest

输出日志

* Starting system message bus dbus                                                                                                                                                    [ OK ] 

* Starting OpenBSD Secure Shell server sshd [ OK ]

Open your web browser with URL:

http://localhost:6080/vnc.html?resize=downscale&autoconnect=1&password=GVkt9PAn

or connect your VNC viewer to localhost:5900 with password GVkt9PAn

2.浏览器访问vnc图形界面

打开火狐浏览器,输入地址:
http://localhost:6080/vnc.html?resize=downscale&autoconnect=1&password=GVkt9PAn

至此,我们已经成功采用docker容器方案开启了一个远程桌面服务

3. 准备编译环境

在noVNC远程桌面内的终端(LXTerminal)内执行指令

apt update

apt install -y maven openjdk-11-jdk


4. 安装IDEA

打开容器内的浏览器

下载IDEA

下载完成,打开文件管理器

进入/root/Downloads目录,释放idea到当前目录

进入释放目录,启动idea

至此,一个基于容器化的在线IDEA开发环境就基本部署完成。


本文是银河麒麟高级服务器操作系统V10 arm64架构下在线IDE的一个探索方案,文中后续的安装编译环境、安装IDEA等均可通过docker的目录挂载能力挂载不同的目录实现动态创建容器内编译、运行环境。相对于基于vscode的web访问模式,通过vnc远程桌面访问更接近本地开发体验。

后续还需要解决更加友好的UI、中文显示、输入等等方面问题。


作者:叶强

大厂数据恢复
  电话咨询