当前位置: 首页 > news >正文

code-server:浏览器里运行 VS Code,随时随地云端开发

code-server:浏览器里运行 VS Code,随时随地云端开发

code-server 是将 VS Code 运行在服务器端、通过浏览器访问的开源项目。只要有网络,无论是 iPad、Chromebook,还是办公室的借用电脑,打开浏览器就能获得完整的 VS Code 开发体验:代码编辑、终端、Git 操作、调试——一切都在云端,本地无需安装任何开发环境。

本文将介绍如何用 Docker Compose 部署 code-server,配合 Caddy 实现 HTTPS 保护,并演示常见使用技巧。


服务器配置

code-server 本身轻量,2 核 4GB 机型足以应对轻量项目的编辑和运行;若需要在服务器内执行重型编译(如大型 C++ 项目、Rust 构建),建议选择 4 核 8GB 或更高配置。

推荐雨云服务器 rainyun-com,注册填优惠码2026off领 5 折优惠券,按量付费,随时可升配,是云端开发的理想选择。

安装 Docker:

curl-fsSLhttps://get.docker.com|shsudousermod-aGdocker$USERnewgrpdocker

Docker Compose 部署

mkdir-p~/code-server/workspace&&cd~/code-server

docker-compose.yml

version:"3.8"services:code-server:image:codercom/code-server:latestcontainer_name:code-serverrestart:unless-stoppedports:-"8080:8080"environment:-PASSWORD=your_strong_password-TZ=Asia/Shanghai-DOCKER_USER=codervolumes:# 持久化工作目录-./workspace:/home/coder/project# 持久化 VS Code 扩展和配置-code_server_config:/home/coder/.config-code_server_extensions:/home/coder/.local/share/code-server# 挂载宿主机 SSH Key(用于 GitHub)-~/.ssh:/home/coder/.ssh:rouser:"1000:1000"networks:-code_server_netnetworks:code_server_net:volumes:code_server_config:code_server_extensions:

关于user: "1000:1000":确保容器内的coder用户与宿主机文件的属主一致,避免文件权限问题。1000是大多数 Linux 发行版第一个普通用户的 UID。

启动:

dockercompose up-ddockercompose logs-fcode-server

看到HTTP server listening on http://0.0.0.0:8080即成功。


配置 Caddy 反代

code-server 必须运行在 HTTPS 下,否则浏览器会限制剪贴板等功能。Caddy 自动处理 TLS:

sudoaptinstallcaddy-y

编辑/etc/caddy/Caddyfile

code.yourdomain.com { reverse_proxy localhost:8080 # 开启 WebSocket 支持(终端和热更新需要) @websockets { header Connection *Upgrade* header Upgrade websocket } handle @websockets { reverse_proxy localhost:8080 } }

重载:

sudosystemctl reload caddy

将域名 A 记录解析到服务器 IP,等待 DNS 生效后访问https://code.yourdomain.com


初始设置

  1. 打开https://code.yourdomain.com,输入docker-compose.yml中设置的PASSWORD,点击Submit
  2. 进入熟悉的 VS Code 界面。
  3. 左下角语言切换:Ctrl+Shift+P →Configure Display Language→ 选择zh-cn(需先安装中文扩展)。

修改密码

code-server 的密码在环境变量中配置,修改后重启容器生效:

# 修改 docker-compose.yml 中的 PASSWORD,然后:dockercompose restart code-server

或使用~/.config/code-server/config.yaml(挂载到容器内):

bind-addr:0.0.0.0:8080auth:passwordpassword:your_new_passwordcert:false

使用指南

安装扩展

code-server 使用Open-VSX Registry(而非微软官方市场),大多数流行扩展都有同步版本:

  1. 点击左侧 Extensions 图标(Ctrl+Shift+X)。
  2. 搜索并安装常用扩展:
    • Python(ms-python.python)
    • Go(golang.go)
    • GitLens(eamodio.gitlens)
    • Prettier(esbenp.prettier-vscode)
    • Chinese (Simplified)(ms-ceintl.vscode-language-pack-zh-hans)
    • Remote SSH(不可用,但 code-server 本身就是远程方案)
  3. 扩展安装在容器卷code_server_extensions中,重启容器后保留。

若某扩展在 Open-VSX 上不存在,可手动下载.vsix文件,通过 Extensions →...Install from VSIX安装。

浏览器终端使用

  • 打开终端:Ctrl+`或菜单Terminal → New Terminal
  • 终端完整运行在服务器内,可执行任意 Linux 命令:
# 安装 Python 依赖pipinstallflask requests# 运行开发服务器python app.py# 管理 Gitgitstatusgitadd.gitcommit-m"feat: initial commit"

Git Clone 项目

# 终端中cd/home/coder/projectgitclone https://github.com/your-org/your-repo.git

项目会出现在/home/coder/project/下,也对应宿主机的~/code-server/workspace/目录,文件直接持久化。

SSH Key 配置(连接 GitHub)

由于我们挂载了宿主机的~/.ssh目录,容器内可直接使用宿主机的 SSH 密钥:

  1. 若宿主机还没有 SSH Key:
ssh-keygen-ted25519-C"your@email.com"cat~/.ssh/id_ed25519.pub
  1. 将公钥添加到 GitHub → Settings → SSH and GPG Keys。
  2. 在 code-server 终端中测试:
ssh-Tgit@github.com# 输出:Hi username! You've successfully authenticated...
  1. 之后git clone git@github.com:...即可免密码操作。

在浏览器中工作的常用快捷键

部分快捷键会被浏览器截获,可用以下替代:

功能原 VS Code 快捷键浏览器中替代
命令面板Ctrl+Shift+PF1 或直接 Ctrl+Shift+P(多数浏览器可用)
打开终端Ctrl+`Ctrl+Shift+`
关闭标签Ctrl+W先点编辑器区域再 Ctrl+W(避免关闭浏览器标签)
全屏编辑器Ctrl+K ZF11(浏览器全屏)+ Ctrl+K Z
多光标Alt+ClickAlt+Click(通常正常)

建议:在 Chrome 中使用"添加到主屏幕"功能,以 PWA 模式打开 code-server,可获得近似原生应用的体验,解决快捷键冲突。

多工作区配置

若想在一台服务器上为不同项目创建独立的 code-server 实例:

# 在 docker-compose.yml 中添加第二个服务code-server-2:image:codercom/code-server:latestcontainer_name:code-server-2ports:-"8081:8080"environment:-PASSWORD=another_passwordvolumes:-./workspace2:/home/coder/project-code_server_config_2:/home/coder/.config

在 Caddyfile 中为code2.yourdomain.com添加对应反代即可。

端口转发(预览本地服务)

code-server 内置了端口转发功能,可将容器内运行的 Web 服务暴露到浏览器:

  1. 在终端内启动一个服务,如python -m http.server 5000
  2. VS Code 底部Ports面板自动检测到 5000 端口,点击Open in Browser
  3. 浏览器会在新标签中打开该服务(通过 code-server 代理)。

总结

code-server 是云端开发工作流的终极形态——一台服务器、一个域名,任何设备都能获得完整的开发环境。无需在本地配置 Node、Python、Go 等运行时,团队成员可共享同一环境配置,彻底告别"在我机器上是好的"问题。

稳定的服务器是云端开发的基石,雨云服务器 rainyun-com的2 核 4GB 机型对日常编辑任务绰绰有余,注册填优惠码2026off领 5 折,费用极低。不妨今天就搭建一套,彻底解放你的开发设备!

http://www.zskr.cn/news/1440338.html

相关文章:

  • 华硕笔记本性能控制新选择:告别臃肿系统,拥抱10MB轻量神器
  • 西门子LOGO! PLC入门指南:从软件安装到梯形图编程实战
  • 猜猜 AI 写“最长无重复子串“会犯什么错?第一版差点 O(n³)
  • 19.从行内到类名:JavaScript 修改 CSS 样式的两种核心方式对比
  • 大模型面试题:LLM预训练阶段有哪几个关键步骤?
  • Kafka InconsistentClusterIdException 导致容器无限重启,磁盘打满排查与修复
  • 终极指南:如何通过RMSProp优化器和EMA权重平均提升cspdarknet53.ra_in1k训练稳定性
  • 大模型面试题:LangChain Token计数有什么问题?如何解决?
  • 2026年留学生实习期求职机构推荐,五大全流程服务优质品牌 - 资讯焦点
  • LoRa无线通信入门:基于AT命令的REYAX RYLR998模块配置与实战
  • 深度伪造视频监管空白正在扩大(2024全球立法进度白皮书首发)
  • NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的专业调优指南
  • Apollo-7B横空出世:革命性多语言医疗AI模型如何赋能全球60亿人?
  • 2026年国内厨卫电器消费市场现状及消费者选购参考指南 - 资讯焦点
  • 从代码到落地:BailingMoeV2_5模型架构的MoE稀疏专家系统详解 [特殊字符]
  • 企业背调怎么查?2026年企业常用的3种背调方式 - 资讯快报
  • MiniCPM4-0.5B在企业级应用中的3大实战案例
  • DeBERTa-v3-base-prompt-injection-v2开发者指南:如何自定义训练和微调你的提示注入检测模型
  • 别再用默认样式了!Unity Toggle组件从‘能用’到‘好看’的完整美化指南(附UI动效)
  • 燃气灶嵌入式还是台式灶好 2026年市场调研及选购参考 - 资讯焦点
  • Mysql实验之——建库建表、插入数据、查询(练习3)
  • 如何使用tsdae-lemone-mbert-base进行法律文本特征提取:5分钟快速入门 [特殊字符]
  • 2026年靠谱的句容双面印花头巾/全涤头巾用户口碑推荐厂家 - 品牌宣传支持者
  • 创客教育中的电路设计:从原理到实践,打造智能生活项目
  • 代码详解:distilbert-multilingual-nli-stsb-quora-ranking推理脚本的每一行
  • 电路设计入门:从核心定律到PCB实战,打造你的智能硬件项目
  • 从天气预报到灾害监测:聊聊合成孔径雷达(SAR)那些不为人知的民用‘超能力’
  • 海洋环境监测必备温深仪!哪家质量好?高性价比供应商合集 - 品牌推荐大师
  • 新规落地|2026巨量本地推服务商规范解读:合规代运营如何助力商家同城爆单 - 资讯焦点
  • Redis分布式锁进第二十篇