当前位置:网站首页>随时随地写代码--基于Code-server部署自己的云开发环境
随时随地写代码--基于Code-server部署自己的云开发环境
2022-08-01 18:52:00 【TOMD】
首发于我的博客TOM的小站
前言
在平时的学习工作中,我们经常会用到代码编辑器,Vscode已经成为我们的首选。但是本地编辑器有个弊端就是当我们在家庭和公司之间移动的时候,无法连续编码。这个时候就有很多新兴的在线编辑器(web IDE)出现了,例如微软和 Github 的Visual Studio Codespaces、腾讯的cloudstudio、华为云 CloudIDE等,这些产品要么还在测试,要么免费用会有限制或者价格不低,目前还不是非常方便。
如果想要低成本愉快使用,自己来搭建一个是不错的方案。对配置要求不高的话,一年几十块一百多块就能买到廉价的 VPS 或者云主机。Web IDE 的部署方案推荐两个,code-server 和 Theia。
在线编辑器的选择
Code-server是由 Coder 开发的,把 VS Code 搬到了浏览器上。
Theia是 Eclipse 推出的云端和桌面 IDE 平台,完全开源。Theia 是基于 VS Code 开发的,它的模块化特性非常适合二次开发,比如华为云 CloudIDE、阿里云 Function Compute IDE 便是基于 Theia 开发。
据我体验下来,Code-server对插件的支持更为完备,并且安全性更高。
安装code-server
code-server一个开源的基于vscode开发的在线编辑器工具。其支持二进制部署、Docker部署、HemlChart部署,目前还不支持windows部署,但是已经足够我们使用了。
具体部署可以参考官方文档。
这里我们选择相对简单快捷的方式,Docker部署。
前置条件
在部署code-server前,你需要准备一台Linux虚机(建议CentOS 7),你可以去云厂商购买(用于生产),也可以使用VMware在个人电脑创建虚机(用于学习)。
我是购买的腾讯云的轻量应用服务器。
初步安装
拉取code-server镜像
docker pull codercom/code-server
启动code-server
docker run -d --name code-server -p 8082:8080 -e PASSWORD=123 codercom/code-server:latest
启动完成后,我们需要在云服务器的防火墙菜单中打开8082端口,然后就可以使用云服务器的公网ip进行登录使用了。(如果你是本地虚拟机,不需要处理防火墙,直接在浏览器访问虚拟机的ip:8082即可)
访问code-server
我们在浏览器访问云服务器的公网ip:8082。
输入密码123登录。
安装插件
code-server和vscode一样,支持安装插件,我选择了几个常用的插件安装测试,均完美支持。
Tips
因为code-server专注于编辑器而对语言本身稍有忽略,比如其内置的python没有pip3工具,需要自己安装;而且内置的deb源速度较慢,需要自行替换。
修改deb源
因为自带的vi不要用,所以我们使用以下方式修改deb源,参考:常用工具大全。
- 复制国内源地址到编辑器的文件aaa中
- 使用命令
cat aaa > /etc/apt/sources.list
- 使用命令
apt update
更新源
安装pip3
在完成了修改deb源和更新deb源之后,我们就可以使用命令apt install python3-pip
来安装pip3了。
安装完成后,你就可以安装你所需要的库了。
亲测可行。赶快行动起来吧。
到此,初步安装已经完成。
应用反向代理
参考:部署code-server并通过域名访问(内含实战填坑)
如果想要用域名的80端口访问,或者不想对外网开放端口的,可以用nginx做反向代理。打开网站的配置文件,做如下更改:
location /
{
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Host http://你的域名;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
}
注意:如果是用宝塔,最好将对于静态文件的规则注释掉。
保存后再次刷新网页就可以进入界面了。输入密码,即可进入首页。
更新docker
Code-server是一直随着vscode的更新而更新的,所以有时需要更新。运行Code-server官方给出的下载命令:
curl -fsSL https://code-server.dev/install.sh | sh
直接在容器内命令行运行,然后重启容器即可。
其他参考
边栏推荐
猜你喜欢
OpenCV installation, QT, VS configuration project settings
Golang协程调度器scheduler怎么使用
7月30号|来一场手把手助您打造智能视觉新爆款的技术动手实验
Keras深度学习实战——交通标志识别
【神经网络】一文带你轻松解析神经网络(附实例恶搞女友)
Hardware Bear Original Collection (Updated 2022/07)
Zabbix6.0钉钉机器人告警
B005 - STC8 based single chip microcomputer intelligent street light control system
C#/VB.NET:从 PDF 文档中提取所有表格
屏:全贴合工艺之GFF、OGS、Oncell、Incell
随机推荐
WinRAR | 将多个安装程序生成一个安装程序
钳形万用表使用方法,如何测量电压、电流、电阻?
MLX90640 红外热成像仪测温模块开发笔记(完整篇)
面试必问的HashCode技术内幕
MySQL 45 Talk | 09 How to choose common index and unique index?
What is the implementation principle of Go iota keyword and enumeration type
通配符 SSL/TLS 证书
ACID Characteristics and Implementation Methods of MySQL Relational Database Transactions
SQL函数 TO_DATE(二)
SQL函数 TO_DATE(一)
PanGu-Coder:函数级的代码生成模型
MySQL数据库————流程控制
JVM运行时数据区与JMM内存模型是什么
Multi-Party Threshold Private Set Intersection with Sublinear Communication-2021:解读
【Day_08 0426】求最小公倍数
突破性能天花板!亚信数据库支撑 10 多亿用户,峰值每秒百万交易
公用函数----mfc
如何让固定点的监控设备在EasyCVR平台GIS电子地图上显示地理位置?
Leetcode71. Simplified Paths
Leetcode72. 编辑距离