> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siflow.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# VS Code Server

<Tip>
  支持用户基于 SSH 公钥，通过 SSH 从本地访问 pod 进行开发。
</Tip>

### 使用 Web Code Server

Code Server 官方教程 [code server](https://coder.com/docs/tutorials/quickstart)
如上所述，使用 VsCode 需要安装相关软件包，这些操作需要在镜像内执行。此处请注意，目前暂不支持基于 conda 的 Python 运行环境。如果你使用了它，请将 Python 执行环境复制或链接到 /usr/bin 或 /usr/local/bin

```Bash theme={null}
curl -fsSL https://code-server.dev/install.sh | sh
```

1. 进入开发环境 - VSCS 页面，点击 Create。

* 选择 VSCS 作为 Access Method

- 此处的扩展目录指的是 VSCode 中安装的各种插件的存储路径。建议将它们安装到 /xxx/.vscode/extensions 这种路径格式下。系统会默认提供一个插件路径，但关闭后可能会丢失。

2. 如何使用 code server
   进入、打开、监控等操作通过列表右侧的操作菜单执行。点击 "Open" 会跳转到 vscode 页面（从状态变为 running 到能够打开，实际上大约需要 10 秒的加载时间，这部分仍在优化中）

* code server 界面如下所示：

### 以 SSH 模式创建实例

1. 进入开发环境 - VSCS 页面，点击 Create

   <img src="https://mintcdn.com/siflow/vap4jT3tfBA1sSQZ/products/siverse/media/develop/develop12.png?fit=max&auto=format&n=vap4jT3tfBA1sSQZ&q=85&s=bb45c439d77173945b2a750023df73ad" alt="图片" width="3696" height="756" data-path="products/siverse/media/develop/develop12.png" />

2. 选择 SSH 作为访问方式并配置公钥。

```Bash theme={null}
# generate ssh key
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
cat ~/.ssh/id_rsa.pu
```

<img src="https://mintcdn.com/siflow/vap4jT3tfBA1sSQZ/products/siverse/media/develop/develop13.png?fit=max&auto=format&n=vap4jT3tfBA1sSQZ&q=85&s=361cd8b75f020633b35b2e040c8d06e6" alt="图片" width="3154" height="730" data-path="products/siverse/media/develop/develop13.png" />

3. 配置存储挂载（可选），选择资源实例，完成后点击 Create。

<img src="https://mintcdn.com/siflow/vap4jT3tfBA1sSQZ/products/siverse/media/develop/develop14.png?fit=max&auto=format&n=vap4jT3tfBA1sSQZ&q=85&s=10e437de55805a8d4dd4337d86ebc0cf" alt="图片" width="3166" height="1760" data-path="products/siverse/media/develop/develop14.png" />

### 访问 SSH 实例

1. 创建完成后，在列表页找到对应实例并点击打开。

   <img src="https://mintcdn.com/siflow/vap4jT3tfBA1sSQZ/products/siverse/media/develop/develop15.png?fit=max&auto=format&n=vap4jT3tfBA1sSQZ&q=85&s=19466e4af7c5a663f7680c88ebdbe951" alt="图片" width="2063" height="173" data-path="products/siverse/media/develop/develop15.png" />

2. 点击 Open 后，你可以获取对应的访问命令，并得到 SSH 连接 IP 与端口。

   <img src="https://mintcdn.com/siflow/vap4jT3tfBA1sSQZ/products/siverse/media/develop/develop16.png?fit=max&auto=format&n=vap4jT3tfBA1sSQZ&q=85&s=45f31f195c3809df5016228aec21546f" alt="图片" width="3136" height="598" data-path="products/siverse/media/develop/develop16.png" />

### 问答

1. SSH 连接时出现 "remote host identification has changed" 的问题

   <img src="https://mintcdn.com/siflow/vap4jT3tfBA1sSQZ/products/siverse/media/develop/develop18.jpg?fit=max&auto=format&n=vap4jT3tfBA1sSQZ&q=85&s=2b461c430bcc83d26ab646425b545d5c" alt="图片" width="1500" height="506" data-path="products/siverse/media/develop/develop18.jpg" />

   **如何修复：**

   `ssh-keygen -R [ip]:port`

### 在 VSCS 中持久化安装 Python 库

1. 配置持久化目录

2. 将 pip 安装位置设置为持久化目录

   `pip config set global.target /volume/test/pkg`

   `pip -v config list`

   <img src="https://mintcdn.com/siflow/vap4jT3tfBA1sSQZ/products/siverse/media/develop/develop17.png?fit=max&auto=format&n=vap4jT3tfBA1sSQZ&q=85&s=7964f0401f5feeb48005433bda6e5b0a" alt="图片" width="850" height="220" data-path="products/siverse/media/develop/develop17.png" />

3. 指定 Python 导入路径

   `PYTHONPATH=/volume/test/pkg:$PYTHONPATH`
