> ## 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 页面，点击新建，选择 VSCS 作为访问方式。

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop-web-overview.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=c61d79f40b90f4be301029fb92dcdbb3" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/develop-web-overview.png" />

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

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop-web-extensions.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=af319abacfde223d8e72039db1729b97" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/develop-web-extensions.png" />

3. 如何使用 code server：进入、打开、监控等操作通过列表右侧的操作菜单执行。点击“打开”会跳转到 vscode 页面。

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop-web-list.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=ad3d0cbf9804b6bbb2dced28f12d7b49" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/develop-web-list.png" />

4. code server 界面如下所示：

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop-web-code-server.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=691822ac89302f4446db7e9cc7a81c6c" alt="图片" width="2000" height="997" data-path="ai-platform/develop/media/develop-web-code-server.png" />

### 以 SSH 模式创建实例

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

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop12.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=85729e17f69f740df2553d1cc7cd4070" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/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/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop13.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=9b9facb6ab24d9cd0ddca3352440f1e5" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/develop13.png" />

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

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop14.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=e47a5e93a8d497b50188d5e01b4f7ceb" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/develop14.png" />

### 访问 SSH 实例

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

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop15.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=fdf7c34764ef9ce37e10e9fbf29f37e5" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/develop15.png" />

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

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop16.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=4830aff66975c6ad8b95769b3ebc2327" alt="图片" width="3840" height="2040" data-path="ai-platform/develop/media/develop16.png" />

### 问答

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

   <img src="https://mintcdn.com/siflow/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop18.jpg?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=e1b34518a648fa6c3ce6c3be3dd1fb6f" alt="图片" width="1500" height="506" data-path="ai-platform/develop/media/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/eGGtzzXEbeKQaXph/ai-platform/develop/media/develop17.png?fit=max&auto=format&n=eGGtzzXEbeKQaXph&q=85&s=b815d26d0ad42beaf7aa3d835c2e4278" alt="图片" width="850" height="220" data-path="ai-platform/develop/media/develop17.png" />

3. 指定 Python 导入路径

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