在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網站:

在這裏插入圖片描述
在谷歌瀏覽器裏創建快捷方式:

在這裏插入圖片描述
選中在窗口中打開,創建即可。

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