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)

如果没有预设密码,进入站点也会告诉你去哪找密码:
image
同样也可以修改对应值来修改密码

体验

编辑文件

image

按着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个插件:

image

但是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

image

参照 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',拿着这句搜一搜自行解决吧。

运行成功效果

image

结语

瞎折腾了一番,不过本来就我而言,开发的体验还是前端用VSCode,后端用VS。code-server的体验和VSCode基本上大差不差。他的最主要的优势还是在于依赖少吧,只需要一个浏览器,sdk都不用装。但一般而言是碰不上这么苛刻的开发条件的。如果想的话,还可以直接去 https://github.dev/

posted @ 2023-07-17 14:38  复制粘贴机器人  阅读(1141)  评论(0编辑  收藏  举报