打造专属的code-server

看了几个教程,决定还是万能Docker先装code-sever,再用nginx和certbot直接搭建https,方便快速

1. Docker安装

注意新主机上怎么完全安装docker:

curl -sSL https://get.docker.com/ | sudo sh

脚本究竟执行了什么?

docker command not found even though installed with apt-get

2. Docker部署Code-server

docker pull codercom/code-server
# 用 docker images 检查一下
# 拉取没问题,那就开始运行了
docker run -d -u root --restart=always --privileged=true --name code-server -p 8080:8080 -e PASSWORD=123456 -v /home/code:/home/code codercom/code-server:latest
# -d 后台运行
# -u root 使用root用户来登录容器
# --restart=always 跟随宿主机启动
# --privileged=true 宿主机设备的完全访问权限
# --name 容器名称
# -p 端口映射
# -e PASSWORD 设置开机密码
# -v 挂载数据卷 我这里是挂载到home目录下的code,代码就保存在这里容易寻找

如果到这里都没问题,那么浏览器输入 http://你的ip:8080 输入密码即可登录到我们的在线IDE了。

alt text

到这里,Docker部署就大功告成。

首先,先让Code-server不间断跑起来,不然SSH一断掉就不能用:

# 安装screen
apt -y install screen
# 新建一个窗口,进入启动code-server
screen -S code
docker restart code-server
# 按下CTRL+A+D即可返回原页面,等到需要恢复窗口时
screen -r code

其次,我们想要修改密码怎么办?

  • 直接使用code-server在线修改。

首先我们先打开新的文件夹:点击菜单-File-Open Folders,文件在/root/.config/code-server/config.yaml,写到code-server就可以了,打开文件开始编辑。

修改配置文件中的password后面的值即可,记得保存。

保存好后,回到刚才的screen里重启。

  • 还可以直接找到该文件修改。
# 用命令找到Docker项目的地址,一般在 /var/lib/docker/overlay2
docker inspect code-server
# 在GraphDriver下的Data项目里的MergedDir项记录着它的地址,我们复制这个地址
"MergedDir": "/var/lib/docker/overlay2/d5093570f4679edb2a6b21c087c826b9cc590b0e39229db4abc240e21780fc4e/merged"
# 地址拼接,打开yaml文件修改
/var/lib/docker/overlay2/d5093570f4679edb2a6b21c087c826b9cc590b0e39229db4abc240e21780fc4e/merged/root/.config/code-server/config.yaml

3. 配置反向代理使用域名访问

这部分主要参考官方文档,使用Nginx搭建反向代理。我试过Docker搭建,但是几次都没成功,为求简便,直接下载Nginx安装。

Usage - code-server Docs

首先,解析好域名。

其次,下载Nginx,certbot等:

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx
# 安装好后
# Update /etc/nginx/sites-available/code-server using sudo with the following configuration:
server {
listen 80;
listen [::]:80;
server_name mydomain.com;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
# Enable the config:
ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf
# 检查并重启 Nginx 服务
nginx -t
nginx -s reload
# 提醒,如果nginx因为其他原因重装了,那么-t配置检测无误后,直接重启即可
service nginx start
# 域名的加密我用的是 certbot。根据系统和软件选择相应的组合,傻瓜式一键配置。
# https://certbot.eff.org
sudo certbot --non-interactive --redirect --agree-tos --nginx -d mydomain.com -m [email protected]

在浏览器直接输入前面绑定的二级域名,就可以看到网站已经加密。 At this point, you should be able to access code-server via https://mydomain.com

写在后面: Code-Server挺占内存的,1G的内存直接占用过半。。。

本文参考:

Ubuntu + VS code Server + Nginx

VPS折腾记录-Docker部署code-server实现在线IDE

All rights reserved
Except where otherwise noted, content on this page is copyrighted.