1. 前言 如果手头上有多个设备,需要经常轮换着使用,又或者经常出门不想带太沉的笔记本电脑,想随时随地写代码,Web IDE 可以帮到你。
Web IDE,顾名思义就是云端开发环境,把 IDE 部署在云上。打开浏览器,连上云 IDE,就可以方便敲代码跑程序。想象一下,带上一台 iPad 或者华为、小米平板,配上蓝牙键盘,坐在阴凉的动物园树下,边看动物边敲代码,多惬意。
其实 Web IDE 很早就有,但都只能说是玩具,直到现在才有一些不错的产品推出,比如微软和 Github 的 Visual Studio Codespaces、coding.net 的 Cloud Studio、华为云 CloudIDE 等。不过,这些产品要么还在测试,要么免费用会有限制或者价格不低,目前还不是非常方便。
如果想要低成本愉快使用,自己来搭建是一个不错的方案。对配置要求不高的话,一年几十块一百多块就能买到廉价的 VPS 或者云主机。Web IDE 的部署方案推荐两个,code-server 和 Theia。
Code-server 是由 Coder 开发的,把 VS Code 搬到了浏览器上。
下面使用三种方式在一台 4 核 8GB 内存 60 GB SSD 的 VPS 上部署 code-server。这台 VPS 一年 24 刀,配置能满足基本的使用。这篇文章很长,但部署过程很简单,如果不想看太多字,可直接拉到最后。
2. 申请云主机 到自己的云服务提供商界面创建云主机
2G8U 80G OS: Centos 7.9
3. VPN 连接云服务商网络 4. 登录到云主机 1 ssh -i ~/.ssh/ssh_key root@server_intranet_ip
5. 安装方式一:使用脚本安装 如果使用安装脚本,则可以预览安装过程中即将发生的情况:
如果对脚本安装有任何担心,请参阅Is curl|bash insecure? 如果仍然有担心,请参考本文介绍的其他安装方式
1 curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
确定没有问题后,开始正式安装。
1 2 3 curl -fsSL https://code-server.dev/install.sh | sh
您可以通过添加或修改一个或多个标志来修改安装过程:
–dry-run:在不运行命令的情况下回显安装过程的命令。 –method:选择安装方法。–method=detect:检测包管理器,但回退到–method=standalone。 –method=standalone:在~/.local 中安装一个独立版本的归档文件。 –prefix=/usr/local:在系统范围内安装独立版本的归档文件。 –version=X.X.X:安装 X.X.X 版本,而不是最新版本。 –help:参阅帮助文档。 –edge:安装最新的 edge 版本(即预发行版) 完成后,安装脚本将打印出运行和启动 code-server 的说明。
6. 安装方式二:rpm/deb 包安装方式 6.1. 下载安装包 1 2 3 4 5 6 7 curl -fOL --output /tmp/code-server-4.20.0-amd64.rpm https://github.com/coder/code-server/releases/download/v4.20.0/code-server-4.20.0-amd64.rpm curl -fOL --output /tmp/code-server_4.20.0_amd64.deb https://github.com/coder/code-server/releases/download/v4.20.0/code-server_4.20.0_amd64.deb
其中版本可以替换成自己需要的版本, 版本信息以及 release notes 可以到 code-server 项目的release 页面 查询
6.2. 安装软件包 1 2 3 4 5 6 7 sudo rpm -i /tmp/code-server-4.20.0-amd64.rpm sudo dpkg -i /tmp/code-server_4.20.0_amd64.deb
6.3. 设置为开机启动 1 sudo systemctl enable --now code-server@$USER
现在可以访问 http://127.0.0.1:8080 . 密码保存在 ~/.config/code-server/config.yaml
6.4. 开放端口 如果要允许外部电脑访问 code-server,这需要修改 IP 地址绑定并开发相应端口
vi ~/.config/code-server/config.yaml
1 2 3 bind-addr: 0.0.0.0:8080
开放端口
1 2 3 4 5 6 7 8 9 10 sudo firewall-cmd --state sudo firewall-cmd --list-all sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload
7. 安装方式三:Docker 安装方式 7.1. 安装 Docker 参考博客 安装并配置 docker | 鹏叔的技术博客
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum clean all && sudo yum update sudo yum install -y device-mapper-persistent-data lvm2 git yum list docker-ce --showduplicates | sort -r sudo yum install -y docker-ce-<version no e.g. 20.10.9-3.el7> sudo systemctl start docker sudo systemctl enable docker sudo docker version
7.2. 设置 docker 使用 Docker 镜像加速器
由于网络原因,我们在 pull Image 的时候,从 Docker Hub 上下载会很慢。
1 2 3 4 5 6 sudo vi /etc/docker/daemon.json { "registry-mirrors" : ["https://registry.docker-cn.com" ], "live-restore" : true }
重启 docker 服务
1 sudo systemctl restart docker
8. Docker 拉取 Code-Server 镜像, 并启动容器 拉取镜像:
1 docker pull codercom/code-server
启动容器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 mkdir -p ~/.config docker run -itd --name code-server -p 0.0.0.0:8080:8080 \ -v "$HOME /.config:/home/coder/.config" \ -v "$PWD :/home/coder/project" \ -u "$(id -u) :$(id -g) " \ -e "DOCKER_USER=$USER " \ codercom/code-server:latest [2022-12-21T07:36:33.289Z] info Wrote default config file to ~/.config/code-server/config.yaml [2022-12-21T07:36:33.553Z] info code-server 4.9.1 f7989a4dfcf21085e52157a01924d79d708bcc05 [2022-12-21T07:36:33.554Z] info Using user-data-dir ~/.local /share/code-server [2022-12-21T07:36:33.567Z] info Using config file ~/.config/code-server/config.yaml [2022-12-21T07:36:33.567Z] info HTTP server listening on http://0.0.0.0:8080/ [2022-12-21T07:36:33.567Z] info - Authentication is enabled [2022-12-21T07:36:33.567Z] info - Using password from ~/.config/code-server/config.yaml [2022-12-21T07:36:33.568Z] info - Not serving HTTPS
将容器设置为开机启动
1 docker update --restart=always code-server
在宿主机上用浏览器打开http://cloud_vm_ip:8080 , 即可访问 code-server, 密码可以在容器的~/.config/code-server/config.yaml 中找到.
可以使用如下命令查看密码
1 2 3 docker exec -it code-server cat ~/.config/code-server/config.yaml
9. 安装插件以及配置 code-server 打开访问 code-server, 例如 http://localhost:8080
打开终端,输入以下命令,即可安装插件
例如:
1 2 3 4 5 6 7 8 9 10 11 12 code-server --install-extension eamodio.gitlens code-server --install-extension esbenp.prettier-vscode code-server --install-extension golang.go code-server --install-extension k--kato.intellij-idea-keyb code-server --install-extension Mikael.Angular-BeastCode code-server --install-extension mrmlnc.vscode-lebab code-server --install-extension oderwat.indent-rainbow code-server --install-extension stivo.tailwind-fold code-server --install-extension vscode-icons-team.vscode-i code-server --install-extension wix.vscode-import-cost code-server --install-extension yzhang.markdown-all-in-one code-server --install-extension zerefdev.todo-highlighter
code-server 配置,可参考我的博客 VSCode 基本配置指南 | 鹏叔的技术博客 以及 vscode 常用快捷键 | 鹏叔的技术博客
10. 关联阅读 另外,若要获取最近更新, 请访问原文基于 Code-server vscode 的云开发环境 | 鹏叔的技术博客
11. trouble shooting 解决 docker 无法启动,报:start request repeated too quickly for docker.service 错误 参考 https://blog.csdn.net/weixin_39246554/article/details/121800320 12. 参考文档 code-server github 官网
随时随地敲代码,基于 Theia 快速部署自己的云开发环境
云开发工具 code-server 安装手册
code-server install - Fedora, CentOS, RHEL, SUSE
coder install.sh