在Ubuntu(阿里云ECS)部署VS Code

在Ubuntu(阿里云ECS)部署VS Code

成果

先给大家看看成果图:
在这里插入图片描述
证书还在申请,已经转换为Chrome APP了。

具体部署

重点一

不要从VS Code官方源码进行构建,如果你死活不信邪,不妨去试一试,当然了,如果不是阿里云的服务器,你用的是国外的服务器,构建应该还是会挺顺利的。

重点二

本次部署使用了第三方已经构建完成的版本,并且使用了Docker。

安装Docker

这个比较简单,按照官方教程或者百度都能装好。

设置Docker镜像,加快Pull速度

/etc/docker/daemon.json

文件写入以下内容:
在这里插入图片描述

创建code-server容器

执行以下命令:

docker run -it -p 127.0.0.1:8080:8080 -e PASSWORD=xxx -v "$PWD:/home/coder/project" -u "$(id -u):$(id -g)" codercom/code-server:latest

如果对端口和密码有要求请自行修改端口映射和环境变量PASSWORD,目录$PWD可以改为自己设定的目录。

访问无法打开

该情况出现于使用反向代理websocket连接被拦截。
在这里插入图片描述
打开Chrome控制台即可发现该问题。
我使用的是Nginx,因此只需要修改Nginx的反向代理配置即可解决该问题。
在对应sites-enable目录下编辑对应的site配置文件:

server {
        listen 80;
        server_name 你的域名;
        location / {
                proxy_pass http://127.0.0.1:8080;
                proxy_read_timeout 200;
                index index.html index.htm;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-Real-IP $remote_addr;
        }
}

完成该步后,再次访问理应正常出现:
在这里插入图片描述

自动更新后Container挂了

执行

docker ps -a
#output 
#CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                    NAMES
#f27157f814a7        codercom/code-server:latest   "dumb-init fixuid -q…"   28 hours ago         Exit(127)          0.0.0.0:8080->8080/tcp   agitated_kapitsa
docker logs agitated_kapitsa
#output
#info  code-server 3.2.0-rc.6 19ff74650b1b001d33d5c0207e311dd7c0ff4d2f
#info  HTTP server listening on http://0.0.0.0:8080
#info    - Using custom password for authentication
#info    - Not serving HTTPS
#info  Automatic updates are enabled

发现并无异常,再仔细找,发现自动更新后位于/usr/lib/code-server/bin/code-server文件丢失了,导致容器启动Command无法执行该程序,从而使整个容器无法启动。

于是我删除了原来的容器,重新创建了第二个容器。

创建完成后,先不打开网页。

先Ctrl + C停止该容器。

然后执行:

systemctl stop docker

停止Docker服务。

然后执行:

cd /var/lib/docker/containers/

切换到我们的容器对应目录下,找到你的容器对应id,进入该目录:

ls
#output
#checkpoints     f27157f814a7b22292f88f897b69d3af8545912773532cd3d2f0e9d4f09ccde3-json.log  hostname  mounts       resolv.conf.hash
#config.v2.json  hostconfig.json                                                            hosts     resolv.conf
vim config.v2.json

打开config.v2.json文件:
在这里插入图片描述
注意看我白框框起来的部分,在0.0.0.0:8080后,加上一个参数,使该容器启动时禁用自动更新。

保存退出。

重启Docker容器

执行:

systemctl start docker
docker start 你的code-server id

至此,code-server部署已经成功了。

将其设置为Chrome APP

打开你的Code-Server网站:

在这里插入图片描述
在谷歌浏览器里创建快捷方式:

在这里插入图片描述
选中在窗口中打开,创建即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章