国产精品免费久久久久电影院_亚洲日韩蜜桃av无码一二三区_AV在线无码免费特黄毛片_亚洲欧美日韩电影在线专区_福利小视频午夜福利一区二区中文字幕_在线免费观看黄黄色视频_欧美菊爆视频在线观看免费_婷婷六月丁香五月_久久伊人精品中文字幕有码_强奸国产无码激情

href="/"
云端IDE系列教程5:初識(shí) WeTTY,想說(shuō)愛(ài)你不容易

2023-02-09

761

原文作者:kaiyun開(kāi)云創(chuàng)新產(chǎn)品總監(jiān) John


概述


今天我們接著上一期的文章《玩轉(zhuǎn)云原生 Terminal 之 TTY 的前世今生》(閱讀原文),繼續(xù)來(lái)聊一聊云原生 Terminal。為了在 TitanIDE 上玩轉(zhuǎn)云原生 Terminal ,首先找到了 WeTTY,在這個(gè)過(guò)程中,花費(fèi)了不少時(shí)間,雖然生命在于折騰,但折騰 WeTTY 的代價(jià)有點(diǎn)過(guò)大了。只能說(shuō) ,WeTTY,想說(shuō)愛(ài)你不容易……


具體什么情況呢?請(qǐng)繼續(xù)往下看。


WeTTY 是什么?


WeTTY = Web + TTY

Terminal over HTTP and https. WeTTY is an alternative to ajaxterm and anyterm but much better than them because WeTTY uses xterm.js which is a full fledged implementation of terminal emulation written entirely in JavaScript. WeTTY uses websockets rather than Ajax and hence better response time.


WeTTY 終端通過(guò) HTTP 和 https 在瀏覽器訪問(wèn)。WeTTY是 ajaxterm 和 anyterm 的替代品,但比它們好得多,因?yàn)閃eTTY 采用 xterm.js 來(lái)實(shí)現(xiàn)的,這是一個(gè)完全用 JavaScript 編寫(xiě)的完整的終端模擬器。WeTTY 使用 websockets 而不是 Ajax,因此響應(yīng)時(shí)間更好。


TitanIDE 是什么?


本文所有涉及的所有操作都是在 TitanIDE 完成的,如果您還未了解過(guò) TitanIDE,請(qǐng)點(diǎn)擊這里了解詳情,簡(jiǎn)單來(lái)說(shuō),TitanIDE 是一款云原生集成開(kāi)發(fā)環(huán)境,特點(diǎn)是“安全、高效、體驗(yàn)”,最少只需一臺(tái)虛擬機(jī),十分鐘即可安裝好,即可開(kāi)啟您的全云端開(kāi)發(fā)之旅!


TitanIDE免費(fèi)下載


擼起袖子開(kāi)干


要在 TitanIDE 運(yùn)行一個(gè)全新的 WeTTY, 首先需要構(gòu)建一個(gè)模板鏡像,然后通過(guò)模板鏡像創(chuàng)建模板,再通過(guò)模板創(chuàng)建項(xiàng)目。當(dāng)然以上是一次性操作,以后就可以直接通過(guò)創(chuàng)建好的模板創(chuàng)建項(xiàng)目即可。


構(gòu)建模板鏡像


創(chuàng)建 TemplateMaker 項(xiàng)目

在 TitanIDE 上構(gòu)建模板鏡像,需要通過(guò) TemplateMaker 模板來(lái)創(chuàng)建一個(gè)項(xiàng)目 template-wetty。


TitanIDE云原生開(kāi)發(fā)


如果您不知道如何操作,README.md 有中英文詳細(xì)說(shuō)明,跟著操作就行了。


云原生開(kāi)發(fā)


創(chuàng)建好的項(xiàng)目 template-wetty 包含以下文件。



上傳模板圖標(biāo)

在文件管理工具欄點(diǎn)擊 template-wetty 進(jìn)入項(xiàng)目文件夾內(nèi)。


TitanIDE云原生開(kāi)發(fā)


將準(zhǔn)備好的圖標(biāo)文件 icon.png 拖拽到文件上傳區(qū)域:



編輯 Dockerfile

在編輯 Dockerfile 之前,我們先準(zhǔn)備一下 WeTTY 的啟動(dòng)腳本,并將保存為 ./bin/app。




構(gòu)建鏡像

TitanIDE 內(nèi)置了鏡像構(gòu)建工具,具體的命令行在 Makefile 里面,執(zhí)行 make help查看幫助。



Dockerfile 編輯好之后就可以直接在當(dāng)前項(xiàng)目文件夾下面執(zhí)行 make命令進(jìn)行鏡像的構(gòu)建。



復(fù)制鏡像 URL


接下來(lái)大概等待一分鐘左右,鏡像就可以構(gòu)建完成。( 鏡像構(gòu)建耗時(shí)取決于幾個(gè)條件,一是網(wǎng)絡(luò),是否需要從外網(wǎng)拉取鏡像和文件;二是安裝了多少軟件。TitanIDE 支持全離線環(huán)境鏡像構(gòu)建,只需要把從外網(wǎng)拉取的鏡像與文件改成本地的即可。)


鏡像構(gòu)建好了會(huì)在 IDE 的終端提示已經(jīng)推送到鏡像倉(cāng)庫(kù),您可以選擇并復(fù)制鏡像 URL 以備用。(如果你仔細(xì)看鏡像的tag 是以 -dirty 結(jié)尾的,那是因?yàn)樾薷牡墓こ涛募€未提交到 Git 倉(cāng)庫(kù),提交之后 tag 就沒(méi)有 -dirty 結(jié)尾,當(dāng)然,您也可以在構(gòu)建的 make 命令后面加參數(shù)直接指定 tag,具體操作方法請(qǐng)參考 README )



將代碼提交到 Git 之后再次構(gòu)建。




創(chuàng)建模板

進(jìn)入模板列表,點(diǎn)擊「創(chuàng)建模板」按鈕。



將之前復(fù)制好模板鏡像 URL (例如:titan.hub:5000/demo/template-wetty:v20230129-da35bea)粘貼到模板鏡像輸入框,再指定模板名稱(chēng),除了以上項(xiàng)必填之外,其它為選填項(xiàng),您可以根據(jù)需要來(lái)填寫(xiě),如顯示名稱(chēng),模板描述等。



通過(guò)簡(jiǎn)單的兩步,再點(diǎn)擊「創(chuàng)建」即可創(chuàng)建好 TitanIDE 的模板。




創(chuàng)建項(xiàng)目

在 TitanIDE 創(chuàng)建項(xiàng)目有兩個(gè)途徑,第一、在項(xiàng)目列表頁(yè)面通過(guò)點(diǎn)擊「創(chuàng)建項(xiàng)目」按鈕進(jìn)入,選擇模板進(jìn)行創(chuàng)建,第二、在模板頁(yè)面選擇模板直接創(chuàng)建并快速打開(kāi)項(xiàng)目。這里我們選用第二種方法一鍵創(chuàng)建 WeTTY 項(xiàng)目。



創(chuàng)建好 WeTTY 項(xiàng)目打開(kāi)后直接進(jìn)入 bash 終端,接下來(lái)就可以使用了。



根據(jù)我們?cè)谏弦黄恼隆对?TitanIDE 玩轉(zhuǎn)云原生 Terminal 系列(一):TTY 的前世今生》所了解到的,我們?cè)?WeTTY 終端來(lái)驗(yàn)證一下 tty stty -a幾個(gè)命令。




問(wèn)題


以上看起來(lái)似乎一切都是那么順風(fēng)順?biāo)?,不香嗎?怎么?biāo)題看起來(lái)有點(diǎn)危言聳聽(tīng)?您且慢,聽(tīng)我解釋一下:


WeTTY 官方鏡像默認(rèn)使用 alpine 基礎(chǔ)鏡像,而 WeTTY 也主打遠(yuǎn)程 SSH 連接,對(duì)于 TitanIDE 這種開(kāi)發(fā)環(huán)境來(lái)說(shuō),不是很友好,alpine 作為服務(wù)運(yùn)行很好,但是作為開(kāi)發(fā)環(huán)境就力不從心了。


那好,我能不能自己從源碼開(kāi)始構(gòu)建一個(gè) WeTTY,然后使用 ubuntu 作為基礎(chǔ)鏡像呢?我還真這么干了,結(jié)果就更悲劇了,從源碼構(gòu)建也是成功了的,也可以運(yùn)行起來(lái),不過(guò),我自己從源構(gòu)建出來(lái)的死活對(duì) --command 參數(shù)不感冒,如果要去解決這個(gè)問(wèn)題,目前作為一個(gè)用戶,所花費(fèi)的時(shí)間成本不低了,因此只好暫且作罷。


我已經(jīng)將這個(gè)問(wèn)題提到開(kāi)發(fā)者的 GitHub issue,后續(xù)再跟進(jìn)。(查看GitHub issue



上圖是我在 TitanIDE 創(chuàng)建了一個(gè) VS Code 項(xiàng)目,克隆了 WeTTY 源碼并運(yùn)行起來(lái)了,指定了 --command 卻不起作用,下面是完整的啟動(dòng)命令。


1、克隆代碼

git clone https://github.com/butlerx/wetty.git


2、編譯代碼并運(yùn)行調(diào)試


作為一個(gè)開(kāi)發(fā)者,我以前可能會(huì)直接想辦法解決上面這個(gè)問(wèn)題,但是現(xiàn)在我多了一層思考,我們遇到問(wèn)題的時(shí)候,應(yīng)該先跳出來(lái),找找有沒(méi)有其他選擇,在更多的選擇中找一個(gè)最優(yōu)解,而不是一頭扎進(jìn)去。以上問(wèn)題就讓更專(zhuān)業(yè)的開(kāi)發(fā)者去解決。


總結(jié)


總體來(lái)說(shuō) WeTTY 是一個(gè)不錯(cuò)的 Web 終端,簡(jiǎn)單的幾步就構(gòu)建了一個(gè) TitanIDE 模板鏡像,并用它新建項(xiàng)目,直接打開(kāi)使用。從使用的角度來(lái)看,功能和性能都很不錯(cuò),也可以在頁(yè)面直接定制字體,主題顏色,操作系統(tǒng)適配等等。如果作為一般用途,比如代替 xshell 等工具做運(yùn)維相關(guān)工作還是很有競(jìng)爭(zhēng)力的。但是希望用 WeTTY 來(lái)作為日常開(kāi)發(fā)用,我相信也是可以的,不過(guò)這就需要花更多的時(shí)間去折騰了。


本文是系列文章《在 TitanIDE 玩轉(zhuǎn)云原生 Terminal 系列》,我將會(huì)在下一篇繼續(xù)就這個(gè)話題展開(kāi)探索,敬請(qǐng)期待!


最后,感謝閱讀!



技術(shù)交流
我們建立了多個(gè)云原生技術(shù)交流群,其中有來(lái)自O(shè)racle、Citrix、華為、騰訊等國(guó)內(nèi)外云計(jì)算專(zhuān)家,立即掃碼,拉你進(jìn)群。目前已有2000+開(kāi)發(fā)者加入我們......
云原生廠商 云原生技術(shù)服務(wù)商
在云原生時(shí)代,kaiyun開(kāi)云創(chuàng)新致力于通過(guò)賦能開(kāi)發(fā)者,實(shí)現(xiàn)企業(yè)快速迭代與交付,大幅提升創(chuàng)新效率。
產(chǎn)品下載