在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網站:
在谷歌瀏覽器裏創建快捷方式:
選中在窗口中打開,創建即可。