轻量折腾计划3,在浏览器进行开发——搭建属于自己的开发全家桶(上篇)
前言
前几天有事需要外出一趟,恰好某个项目出现了个比较严重的BUG,可苦于当时没有带电脑,借用朋友的电脑用了用也因为其上边没有我平常用的IDE,也没有相关的环境,修复的过程可谓是痛苦万分,最终只能在宝塔的编辑器中完成...这时我不禁琢磨,是否能搭建这么一套基于WEB的开发全家桶,让开发者能够随时随地用浏览器就能进行开发呢?说干就干!
正文
既然要搭建这么一套全家桶,那么需要准备以下物品:
- VPS服务器一台
- 域名一个(如果你直接记IP也没问题)
首先是VPS服务器,正如我们的标题一般,轻量折腾计划,故而我们这里选择的服务器是腾讯云的轻量应用服务器Lighthouse。腾讯云的轻量服务器因其活动多、优惠大、性价比高而广泛闻名于国内的中小站长群体之间,虽然没有弹性网卡等一些CVM的功能,但其近期上线了VPC内网互联也同样补齐了很大一块短板。对于我们这些需求不大的小站长的需求可以说是基本上覆盖全的了,而且还不限制CPU,一核比某些灵车的四核还强。
接下来是code-server的安装,首先我们新建一个配置项目录:
mkdir ~/.config && mkdir /project
接着直接使用docker进行安装:
docker run -itd --name code-server -p 127.0.0.1:8080:8080 \\
-v "$HOME/.config:/home/coder/.config" \\
-v "/project:/home/coder/project" \\
-u "$(id -u):$(id -g)" \\
-e "DOCKER_USER=$USER" \\
codercom/code-server:latest
可以看到,我们将容器内的8080端口映射到本地的8080端口(若是直接使用端口的朋友可以把此处的127.0.0.1改为0.0.0.0),并且我们把新建的两个目录给挂载到了容器内,这样一来我们可以直接在容器内修改容器外部的文件。
使用命令docker ps
可以看到我们的容器在运行当中:
[root@VM-8-17-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51fb2363150e codercom/code-server:latest "/usr/bin/entrypoint…" 45 seconds ago Up 44 seconds 127.0.0.1:8080->8080/tcp code-server
[root@VM-8-17-centos ~]#
然后就是反向代理,将我们的域名(此处使用test.com做演示之用)跟容器的环境结合在一起。
在宝塔添加一个网站(ide.test.com):
同样也是用docker部署,在这种多应用同时部署的环境中,不同应用直接使用不同的容器做隔离,互不影响,减少了直接的干扰,可以说是优势巨大了。
首先新建一个目录做为挂载点,让容器内的数据与外部数据互通:
midir /gogs
接着运行命令:
docker run -p 3022:22 -p 3000:3000 --name=gogs \\
-v /gogs:/data \\
-d gogs/gogs
使用命令docker ps
查看部署情况:
[root@VM-8-17-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
529a758630a8 gogs/gogs "/app/gogs/docker/st…" 10 seconds ago Up 10 seconds 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:3022->22/tcp, :::3022->22/tcp gogs
同样是老规矩,我们吧3000端口进行反代一下,这里我们用git.test.com做演示。反代过程参考codeserver的安装,由于不需要websocket,故而也不需要编辑配置文件的操作了。
反代好之后访问我们的域名:
这里为了方便,我们直接选择使用sqlite作为数据库。
应用基本设置内,除了应用URL我们修改为:http://git.test.com
之外,其他保持默认即可:
可选设置中设置上管理员:
点击立即安装后,GIT平台搭建完毕:
来看下我们的资源占用情况(2核4G内存):
可以看到,4G的内存目前占用不足1G,可以说是相当的精简了,小主机也能轻松跑起来,这使得我们为后续应用的安装腾出了许多的空间。
后话
现在,我们已经拥有了自己的在线IDE,也有了自己的GIT平台,已经可以完成日常中大部分开发常需要的功能了,不过这还不够,由于篇幅所限,在下篇文章中,我将继续带大家完善我们的开发者全家桶套餐,将我们的浏览器编程板块继续补充完整~