作者: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、中文顯示、輸入等等方面問題。
作者:葉強
大廠數據恢復