Ubuntu下部署code-server——浏览器里的vscode

背景

最近闲来无事,无意间看到了知乎上一篇介绍vscode的vs online插件的文章,于是心血来潮想要试一试,后来发现居然还要绑定信用卡,然而我并没有他所要求的那种信用卡,况且没有梯子的我连接其网站还特别慢。无奈上GitHub看看有没有什么替代品,于是就发现了一个叫做code-server的项目,能够支持远程部署自己的vscode,不要求远程服务器上要有图形界面,命令行即可,就可以在浏览器中愉快的写代码啦。

步骤

1. 准备服务器

首先是一个服务器,考虑到目前的code-server只支持Linux和Darwin,身为服务器好像也没什么选择了。另外一定得要是64位的,32位的已经被放弃支持了。

笔者的服务器是Ubuntu 16.04版本,在阿里云上面(这里不得不提一句,如果是学生朋友的话阿里云有云翼计划服务,9.9一个月的服务器,一年只要100+,虽然只有1核,但是部署code-server还是够了的(虽然官方建议2核及以上...))。

登录服务器之后获取root权限。(考虑到之后的监听本地地址的原因,笔者这里监听本地地址0.0.0.0需要root权限才可以)

2. 下载项目

GitHub上的地址在 https://github.com/cdr/code-server ,进去之后选择releases

Ubuntu下部署code-server——浏览器里的vscode_第1张图片

进入到release界面之后选择下载最新的release版本,笔者这里的是2.1698-vsc1.41.1

Ubuntu下部署code-server——浏览器里的vscode_第2张图片

使用 wget 命令从相应的链接上下载压缩包到本地,然后解压缩,发现有几个文件,分别是:

  1. code-server 是一个二进制文件,也就是我们待会要执行的服务。
  2. LICENSE.txt 和 README.md以及ThirdPartyNotices.txt都是自带的一些说明性的文件,不用管它。
  3. 其他的是笔者自己创建的文件和文件夹,不用管。

所以从上面来看,其实真正重要的只有code-server这个文件,那么我们现在就可以部署啦!

3. 部署

按照官方文档的步骤,部署其实很简单,只需要

./code-server

即可,不过这样子有几个问题:

  1. 只能够监听本地地址,也就是 127.0.0.1 ,从外网无法访问。这样子和玩具无异。
  2. 默认监听端口为 8080。这个倒是没什么,不过如果你每次从浏览器访问都想写 IP:8080 的话...
  3. 使用随机生成的密码进行登录。这个实在是太麻烦了,倒不是说不用密码,密码肯定得要上的,但是每次随机生成的密码实在是太乱了,一串乱码,如果每次登录都要输入这么一长串玩意,估计每次登录都要上服务器看一看密码才行,如果靠某些东西把密码记录下来的话未免也太麻烦了,如果能够用自定义密码就好了。

那么针对以上事项,做出相应对策:

  1. 监听地址可以传入参数 --host 0.0.0.0 改为监听本地地址。
  2. 监听端口可以传入参数 --port 80 改为监听http的默认访问端口,这样从浏览器访问时只需要填写IP即可。
  3. 传入 PASSWORD 环境变量,来定义自定义密码。

于是,我们的启动命令就变成了:

export PASSWORD="你自己的密码" && ./code-server --host 0.0.0.0 --port 80

就ok了。进入浏览器访问服务器公网ip,然后就会发现已经成功运行啦,现在就可以随时随地改需求啦!(误)

Ubuntu下部署code-server——浏览器里的vscode_第3张图片

没错,本文就是在浏览器里通过code-server写哒!

注意事项

最后,有一些注意的事项需要说明一下:

  1. code-server的插件市场和vscode的插件市场是不共用的,所以有些vscode里面的插件在code-server里面可能无法找到,不过可以通过VSIX的形式进行安装。

    Ubuntu下部署code-server——浏览器里的vscode_第4张图片

    可以去vscode的插件市场下载vsix的插件然后通过这种方式进行安装。

  2. 用上面的方法进行部署之后直接退出和服务器的连接是可行的,不过服务器上会始终运行一个终端,在阿里云里面通过网页上的远程连接方式连接之后如果断开连接终端是默认关掉的,这样终端中所运行的code-server服务也会随之消失,如果要使其成为后台运行的服务,需要使用 nohup 命令和命令末尾加 & 的方式来启动后台进程。

     export PASSWORD="你自己的密码" && nohup ./code-server --host 0.0.0.0 --port 80 &
    
  3. 有时候code-server会莫名其妙的终止进程(笔者至今还没发现原因),所以只好搞了个定时检测进程的脚本,通过cron服务做定时检测,检测当前是否有目标进程,如果没有的话则启动相应进程。

  4. 默认采用http协议连接,保密性不是很好,按照官方文档的描述,可以通过https进行连接,不过得先为服务器申请一个证书......

结论

啊,终于到结论部分了,结论其实没什么好说的,当前的code-server能够支持用户自己部署,且特别方便,不像vscode还需要注册Azure账号完了还要绑定信用卡......不过你要是问我更支持官方还是更支持同人的话,我当然会回答更支持官方了。随着5g时代的到来,感觉远程开发会成为下一个开发工具的热点。目前无论是vs online也好code-server也好,都只是这方面的一个探索,希望以后能够出现真正稳定快速的远程开发工具吧,这样不仅可以“一次编写,到处部署”,还可以“一次部署,到处编写”了,真正做到了随时随地部署,随时随地改需求。(误)

你可能感兴趣的:(开发工具)