linux搭建code-server及使用中遇到的问题
系统环境
- CentOS 8.5
docker搭建
linux不太熟,但是用docker搭建是真的简单,有现成的镜像的话一句命令就可以搞定。
docker run -itd --name my-code-server \
-p 5580:8080 \
-v /data/mycode:/home/coder \
-e PASSWORD=12345678 \
codercom/code-server:latest --auth password
虽然比较简单粗暴,但是这个镜像里面啥环境都没,不适合调试开发。当然也可以套一层再做一个镜像。但是想到可能随着使用又需要安装其他的环境比较麻烦。
直接搭建
下载
前往 https://github.com/coder/code-server/releases 。最早写下相关笔记时的版本是4.13.0,现在整理成博客时已经到了[4.14.1]了...不过看了下这几个版本的更新内容,应该没啥太大区别,但是我这里的记录都是基于4.13.0
解压,进入工作目录
tar -zxvf code-server-4.13.0-linux-amd64.tar.gz
cd code-server-4.13.0-linux-amd64
cd bin
启动
启动命令
./code-server \
--port 5580 \
--host 0.0.0.0 \
--auth password (默认)
--cert (https证书)
脚本启停
启动
export PASSWORD="12345678" #预设密码
log_folder="logs"
log_file="$log_folder/$(date +%Y-%m-%d).log"
if [ ! -d "$log_folder" ]; then
mkdir "$log_folder"
fi
nohup ./code-server --port 5580 --host 0.0.0.0 --auth password > "$log_file" 2>&1 &
echo $! > pid.txt
或者就简:
export PASSWORD="12345678" #预设密码
nohup ./code-server --port 5580 --host 0.0.0.0 --auth password > "codeServer.log" 2>&1 &
echo $! > pid
停止
kill -9 $(cat ./pid)
如果没有预设密码,进入站点也会告诉你去哪找密码:
同样也可以修改对应值来修改密码
体验
编辑文件
按着ctrl键时,鼠标点击文件,可以打开编辑文件
使用时遇上的一些问题
code-server在使用上和VSCode基本一致,所以有些设置方面的东西这里就不再重复了。而且以上内容基本上都有相关博客。接下来是遇到的一些问题。
vue
一旦我输入一个字符,内存就开始飞速飙升直到死机。起初并不知道原因,直到在code-server里看到了类似的issue。正巧我安装了volar
,试了下,关闭volar
后就没有这个问题了。于是去volar的仓库看看有没有类似的,尝试了这个方法解决,即开启volar的takeover模式。
C#
修改插件市场源
前不久新出了个C# Dev Kit
,想安装试试水,发现搜不到,原来是插件市场的源和VSCode不一样。(从其他各方面的信息来看,应该是license不支持),所以这后面的内容仅供参考:
修改[coder-server根目录]/lib/vscode/product.json
"extensionsGallery": {
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"itemUrl": "https://marketplace.visualstudio.com/items",
"controlUrl": "",
"recommendationsUrl": ""
}
重启
.NET SDK下载超时
这里我安装了这2个插件:
但是C#插件还会下载.NET Runtime,不知道是什么网络问题,一直下载失败。而且我寻思我已经装过了为啥还要装一个?能不能直接使用本地sdk?
打开setting.json
:
{
"dotnetAcquisitionExtension.existingDotnetPath": [
{
"extensionId": "ms-dotnettools.csharp",
"path": "/root/.dotnet/dotnet"
},
{
"extensionId": "ms-dotnettools.csdevkit",
"path": "/root/.dotnet/dotnet"
}
]
}
重启
如果仍未修复,可能是dotnet路径不对
C#调试
参照VSCode的方式,创建了launch.json
,debugger却发现:
Unable to start debugging. .NET Debugging is supported only in Microsoft versions of VS Code. See https://aka.ms/VSCode-DotNet-DbgLicense for more information.
大意是说,debugger不是开源的,所以只能在微软发布的VSCode里用,code-server里不行(其他VSCode Web版也没法使用。
但是,还是有搞头:
https://github.com/VSCodium/vscodium/issues/82
前往netcoredbg下载 netcoredbg-linux-amd64.tar.gz。
tar -zxvf netcoredbg-linux-amd64.tar.gz
参照 https://github.com/VSCodium/vscodium/issues/82#issue-409806641 修改launch.json,
大部分内容都在创建这个文件时产生了,只需要按照他给的再加点内容就行了。
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/bin/Debug/netcoreapp_your_ver/your_proj_name.dll",
"args": [],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"stopAtEntry": false,
"internalConsoleOptions": "openOnSessionStart",
"pipeTransport": {
"pipeCwd": "${workspaceFolder}",
"pipeProgram": "bash",
"pipeArgs": ["-c"],
"debuggerPath": "/home/netcoredbg/netcoredbg",
"quoteArgs": true
}
}
,]
}
我这里运行报错/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26'
,拿着这句搜一搜自行解决吧。
运行成功效果
结语
瞎折腾了一番,不过本来就我而言,开发的体验还是前端用VSCode,后端用VS。code-server的体验和VSCode基本上大差不差。他的最主要的优势还是在于依赖少吧,只需要一个浏览器,sdk都不用装。但一般而言是碰不上这么苛刻的开发条件的。如果想的话,还可以直接去 https://github.dev/