Code Server[1] 是一款 Web IDE,你可以通過瀏覽器在任何設備上訪問它,包括 iPad,隨時隨地開發不是夢。
為啥要使用 Code Server
- 再也不用每換一次電腦都要重新配置一次環境了
- 使用不同的電腦隨時訪問同一套開發環境,公司沒做干完的活,家里無縫銜接
- 可以部署在性能強勁的遠程/本地服務器,不消耗筆記本資源,不再為筆記本發熱和風扇的問題煩惱
- 可以使用 iPad 開發,臨時出差只帶 iPad 也能完成工作
- 代碼不會因為電腦損壞丟失了!
解決方案
直接使用官方鏡像肯定滿足不了我的需求,比如沒有 zsh,沒有 Golang、Python、Node 相關開發環境,這些肯定都要自己去定制實現的。我自己一些需求的解決方案如下:
瀏覽器體驗雖然已經很不錯了,但感覺始終沒有本地 IDE 爽
在 Code Server 里部署 OpenSSH Server,配置 VS Code 插件Remote SSH遠程連接 Code Server 的工作空間,體檢幾乎與本地開發完全一樣
程序員怎么可能沒有科學上網
還真的在 Code Server 里集成了 Clash 程序,使用命令setproxy即可自動啟動 Clash 并設置終端代理
集成 AnyConnect VPN 工具
寫了個小工具 easyoc,調用 OpenConnect 客戶端,快速連接 VPN
服務器在內網,我想隨時映射內網的服務出來,怎么辦
如果使用本地 VS Code 插件 Remote SSH 開發,那么直接在 IDE 內部可以直接設置端口映射,原理是通過 SSH 端口轉發實現。如果使用瀏覽器那就沒辦法了?不,我在 Code Server 內部集成了 Nps 內網穿透工具,Nps Server 端部署在我的云服務器,通過公網訪問直接配置端口映射。
怎么快捷更新我的 Code Server 環境呢?比如安裝新的工具
白嫖 GitHub 的 Actions,項目更新時自動幫我構建 Docker 鏡像。
目前我的鏡像環境基于 Code Server 官方的鏡像構建,官方只提供 Ubuntu 的運行環境
之后一定要換成 Archlinux,它才是永遠的神,Ubuntu 的包管理器太難用了,很多工具要么沒有,要么都是老版本,添加源也麻煩。。
總結
- OpenSSH Server
- ydcv 翻譯
- Nps 內網穿透[2]
- Clash 科學上網[3]
- Oh My Zsh[4] 以及他的一些插件
- OpenConnect 客戶端
- 云原生開發工具,包括 Helm、Kubectl、Docker、Helmfile 等
- Python、Node、Golang 開發環境
- MySQL 客戶端以及一些網絡工具
項目地址
https://github.com/monlor/docker-code-server
參考資料
[1]
Code Server: https://coder.com/docs/code-server/latest
[2]
Nps 內網穿透: https://github.com/ehang-io/nps
[3]
Clash 科學上網: https://github.com/Dreamacro/clash
[4]
Oh My Zsh: https://ohmyz.sh