作者:admin 日期:2023-09-10 瀏覽: 次
「干貨」銀河麒麟服務(wù)器操作系統(tǒng)V10在線IDEA arm64開發(fā)環(huán)境方案
本文為大家分享銀河麒麟高級服務(wù)器操作系統(tǒng)V10上基于Docker、x11vnc-desktop打造基于容器的在線IDEA arm64開發(fā)環(huán)境方案,請大家多多點(diǎn)贊、收藏、評論、關(guān)注[來看我]!
在線IDE目前表現(xiàn)比較好的有云效,其功能主要還是以Web方式提供在線vscode集成開發(fā)環(huán)境,啟動(dòng)編輯環(huán)境初步推斷為內(nèi)部啟動(dòng)一個(gè)專用語言的虛擬機(jī)或者容器,clone源碼。優(yōu)點(diǎn)是客戶端只需要一個(gè)瀏覽器,缺點(diǎn)是需要熟悉vscode開發(fā)環(huán)境,對習(xí)慣IDEA的開發(fā)者不太友好,且部分快捷鍵由于瀏覽器問題不能正常使用。
本文探索另外一個(gè)在線IDE方案,采用docker容器技術(shù)提供底層計(jì)算、存儲環(huán)境,通過x11vnc-desktop在字符界面服務(wù)器容器內(nèi)開啟一個(gè)圖形界面,通過vnc協(xié)議對外提供服務(wù)。用戶通過瀏覽器vnc協(xié)議打開的是一個(gè)類似云端主機(jī)的遠(yuǎn)程桌面,在遠(yuǎn)程桌面內(nèi)使用熟悉的IDEA進(jìn)行開發(fā)工作。
與云主機(jī)(虛擬機(jī))對比,docker方案的核心優(yōu)勢是輕量化,啟動(dòng)快,占用資源少,掛載數(shù)據(jù)盤方便。
系統(tǒng)準(zhǔn)備
開啟ip轉(zhuǎn)發(fā)
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"]
將啟動(dòng)用戶由ubuntu改為root,原因是麒麟V10環(huán)境打包鏡像部分目錄權(quán)限錯(cuò)誤
編譯鏡像
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.啟動(dòng)一個(gè)實(shí)例
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
至此,我們已經(jīng)成功采用docker容器方案開啟了一個(gè)遠(yuǎn)程桌面服務(wù)
3. 準(zhǔn)備編譯環(huán)境
在noVNC遠(yuǎn)程桌面內(nèi)的終端(LXTerminal)內(nèi)執(zhí)行指令
apt update
apt install -y maven openjdk-11-jdk
4. 安裝IDEA
打開容器內(nèi)的瀏覽器
下載IDEA
下載完成,打開文件管理器
進(jìn)入/root/Downloads目錄,釋放idea到當(dāng)前目錄
進(jìn)入釋放目錄,啟動(dòng)idea
至此,一個(gè)基于容器化的在線IDEA開發(fā)環(huán)境就基本部署完成。
本文是銀河麒麟高級服務(wù)器操作系統(tǒng)V10 arm64架構(gòu)下在線IDE的一個(gè)探索方案,文中后續(xù)的安裝編譯環(huán)境、安裝IDEA等均可通過docker的目錄掛載能力掛載不同的目錄實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建容器內(nèi)編譯、運(yùn)行環(huán)境。相對于基于vscode的web訪問模式,通過vnc遠(yuǎn)程桌面訪問更接近本地開發(fā)體驗(yàn)。
后續(xù)還需要解決更加友好的UI、中文顯示、輸入等等方面問題。
作者:葉強(qiáng)
大廠數(shù)據(jù)恢復(fù)