赞
踩
先给大家看看成果图:
证书还在申请,已经转换为Chrome APP了。
不要从VS Code官方源码进行构建,如果你死活不信邪,不妨去试一试,当然了,如果不是阿里云的服务器,你用的是国外的服务器,构建应该还是会挺顺利的。
本次部署使用了第三方已经构建完成的版本,并且使用了Docker。
这个比较简单,按照官方教程或者百度都能装好。
在
/etc/docker/daemon.json
文件写入以下内容:
执行以下命令:
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;
}
}
完成该步后,再次访问理应正常出现:
执行
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后,加上一个参数,使该容器启动时禁用自动更新。
保存退出。
执行:
systemctl start docker
docker start 你的code-server id
至此,code-server部署已经成功了。
打开你的Code-Server网站:
在谷歌浏览器里创建快捷方式:
选中在窗口中打开,创建即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。