CNB Go、Node、Python远程开发默认环境

远程开发默认环境镜像,基于 Ubuntu 22.04 LTS,专为 CNB 在线开发优化。
- 镜像名称:
docker.cnb.cool/zishuo/default-dev-env:latest
- 基础系统: Ubuntu 22.04 LTS
- 软件源: 腾讯云镜像源
- 进程管理: runit
- 编程语言:
- Go 1.25.4 (通过 GVM 管理,包含完整工具链)
- 核心工具: gopls、golangci-lint、gotests、gofumpt、staticcheck、goimports
- 调试工具: delve (dlv)、godef、gogetdoc
- 代码质量: gocyclo、dupl、govulncheck
- 开发工具: air (热重载)、swag (API文档)、migrate (数据库迁移)
- 性能分析: benchstat、structlayout、go-size-analyzer
- Protocol Buffer: protoc、protoc-gen-go、protoc-gen-go-grpc
- MCP 服务器: mcp-filesystem-server、gitea-mcp
- 测试工具: tdd-guard-go、goveralls
- Node.js 23 (通过 NVM 管理)
- 包管理器: npm、yarn、pnpm、bun (配置国内镜像)
- 全局工具: TypeScript、ccundo、ccusage、tdd-guard、mcp-remote、repomix
- AI 工具: @openai/codex、@google/gemini-cli、@tencent-ai/codebuddy-code
- Claude 工具: @musistudio/claude-code-router、claude-code-templates
- Python 3.12 (通过 uv 管理,含系统 Python 3)
- 包管理器: pip、uv、setuptools、wheel
- 文档工具: markitdown (支持 PDF/DOCX/PPTX/XLSX/Outlook)、markitdown-mcp
- MCP 工具: serena-agent、mcp-proxy
- 版本控制:
git git-lfs git-filter-repo (支持大文件和仓库过滤)
- 编译构建:
- C/C++:
gcc g++ clang clang-format clang-tidy llvm ccache
- 构建工具:
make cmake meson ninja-build pkg-config
- 自动化:
autoconf automake libtool bison
- 汇编:
yasm nasm
- 文本编辑器:
vim nano
- 系统监控:
htop iotop iftop lsof sysstat bsdmainutils pciutils
- 进程管理:
runit tree
- 调试工具:
gdb valgrind strace linux-tools-generic (perf等)
- Shell: Zsh (默认,配合 oh-my-zsh + 自动建议 + 语法高亮 + bash补全) + Bash
- 文件处理:
unzip zip dos2unix upx-ucl rsync
- 基础网络:
iputils-ping net-tools iproute2 ethtool netcat nmap tcpdump
- 网络诊断:
dnsutils telnet traceroute mtr
- 性能测试:
iperf3 wrk apache2-utils (ab 压测工具)
- SSH服务:
openssh-server
- 数据传输:
curl wget socat rsync
- 数据库客户端:
redis-tools sqlite3 libpq-dev default-libmysqlclient-dev
- 文本搜索:
ripgrep (rg)
- JSON处理:
jq
- 代码质量:
shellcheck yamllint
- 协议支持: Protocol Buffers v25.1 (protoc + protoc-gen-go + protoc-gen-go-grpc)
- 开发库:
- SSL/TLS:
libssl-dev
- 压缩:
zlib1g-dev libbz2-dev
- 数据库:
libsqlite3-dev libpq-dev default-libmysqlclient-dev
- 其他:
libreadline-dev libncurses-dev libpcre3-dev libcurl4-openssl-dev libxml2-dev libxslt1-dev
- VSCode Server: 内置 code-server 及 35+ 专业扩展
- GoLand: JetBrains GoLand 2025.1
- 语言支持:
- Go (golang.go)
- Vue (vue.volar)
- YAML (redhat.vscode-yaml)
- TOML (bungcip.better-toml)
- Protocol Buffers (zxh404.vscode-proto3)
- Markdown Mermaid (bierner.markdown-mermaid)
- 环境变量 (mikestead.dotenv)
- Git工具:
- GitLens (eamodio.gitlens)
- Git Graph (mhutchie.git-graph)
- Git Blame (waderyan.gitblame)
- Git Extension Pack (pinage404.git-extension-pack)
- Git Commit Template Helper (zhubin.git-commit-template-helper)
- 代码质量与格式化:
- ESLint (dbaeumer.vscode-eslint)
- Prettier (esbenp.prettier-vscode)
- ErrorLens (usernamehw.errorlens)
- Tailwind CSS (bradlc.vscode-tailwindcss)
- 开发工具:
- Docker (ms-azuretools.vscode-docker)
- Makefile Tools (ms-vscode.makefile-tools)
- Code Runner (formulahendry.code-runner)
- GoTools (neonxp.gotools)
- 数据库:
- SQLite Editor (yy0931.vscode-sqlite3-editor)
- Database Client2 (cweijan.vscode-database-client2)
- AI助手:
- Claude Code (anthropic.claude-code)
- OpenAI ChatGPT (openai.chatgpt)
- Roo Cline (rooveterinaryinc.roo-cline)
- 腾讯 Coding Copilot (tencent-cloud.coding-copilot)
- MCP 工具:
- Spec Workflow MCP (pimzino.spec-workflow-mcp)
- 其他工具:
- CNB Welcome (cnbcool.cnb-welcome)
- Material Icon Theme (PKief.material-icon-theme)
- Iconify (antfu.iconify)
- Path Intellisense (christian-kohler.path-intellisense)
- 中文支持: VSCode 中文语言包 (ms-ceintl.vscode-language-pack-zh-hans)
VSCode Server (.cnb.yml 示例)
main:
vscode:
docker:
image: docker.cnb.cool/zishuo/default-dev-env:latest
services:
- vscode
- docker
main:
goland:
docker:
image: docker.cnb.cool/zishuo/default-dev-env:latest
services:
- goland
docker run -it --rm \
-v $(pwd):/workspace \
-p 8080:8080 \
docker.cnb.cool/zishuo/default-dev-env:latest \
/bin/zsh
镜像内置了优化的环境变量配置:
- Go 环境:
GOPROXY=https://goproxy.cn,direct,GOEXPERIMENT=jsonv2
- Node.js: Bun 配置国内镜像
registry.npmmirror.com
- Python: UV 工具目录
/opt/uv/tools
- 时区:
Asia/Shanghai
- 语言:
zh_CN.UTF-8
环境支持多种 IDE 同时使用:
- VSCode (code-server)
- GoLand 2025.1
- 数据库客户端工具 (Database Client2、SQLite Editor)
- 基于最新 LTS:Ubuntu 22.04 LTS 作为基础系统,稳定可靠
- CNB 优化:使用腾讯云镜像源加速包下载,配置国内 npm/Go 代理,下载飞快
- 多语言全栈:
- Go 1.25.4 (GVM 管理) + 30+ 专业工具
- Node.js 23 (NVM 管理) + Bun/pnpm/yarn 全套包管理器
- Python 3.12 (UV 管理) + 文档处理工具链
- 智能Shell:默认 Zsh + oh-my-zsh + 自动建议 + 语法高亮 + Git 补全
- 双 IDE 生态:
- VSCode Server + 35+ 精选扩展
- JetBrains GoLand 2025.1
- 性能优化:
- Go 编译优化:
-trimpath, -ldflags "-s -w -extldflags '-static'"
- CGO 优化:
-O3 -march=native
- 支持静态编译和交叉编译
- 使用 ccache 加速 C/C++ 编译
- AI 编程助手:
- 内置 Claude Code、OpenAI ChatGPT、Roo Cline、腾讯 Coding Copilot
- 支持 MCP 协议 (mcp-filesystem、gitea-mcp、serena-agent、mcp-proxy)
- 集成 Claude Code Router 和 Templates
- 专业工具链:
- 调试: gdb, valgrind, strace, delve, perf
- 性能: iperf3, wrk, apache2-utils (ab), benchstat
- 网络: nmap, tcpdump, mtr, traceroute, dnsutils
- 监控: htop, iotop, iftop, sysstat
- 现代构建工具:
- 多编译器: gcc, g++, clang, llvm
- 构建系统: make, cmake, meson, ninja
- 汇编: yasm, nasm
- 压缩: upx-ucl
- 数据库与协议:
- 数据库客户端: Redis, SQLite, PostgreSQL, MySQL
- Protocol Buffers v25.1 完整工具链
- 文档处理: markitdown (支持 PDF/Office/Outlook)
- 代码质量保障:
- Go: golangci-lint, gocyclo, dupl, govulncheck
- Shell: shellcheck
- YAML: yamllint
- 格式化: clang-format, gofumpt, prettier
- 容器友好:
- runit 进程管理
- 支持多服务编排
- 镜像层优化,减少体积
- 开发者体验:
- 遥测关闭 (DISABLE_TELEMETRY=1)
- 自动更新禁用
- 完整的 bash-completion
- 工作目录
/workspace
- 单层 RUN 指令减少镜像层数
- 使用
--no-install-recommends 避免安装不必要的包
- 使用
--no-cache-dir 减少 Python/npm 缓存
- 清理 APT 缓存和临时文件 (
/var/lib/apt/lists/*, /tmp/*)
- Go 模块和缓存在构建后清理
Node.js 全局包:
typescript, npm, pnpm, yarn, bun
ccundo, ccusage, tdd-guard
@openai/codex, @google/gemini-cli
@tencent-ai/codebuddy-code
@musistudio/claude-code-router
claude-code-templates, mcp-remote, repomix
Go 工具:
gopls, golangci-lint, staticcheck, gofumpt, goimports
delve (dlv), gotests, gomodifytags, impl
air, swag, migrate, govulncheck
gocyclo, dupl, benchstat, go-size-analyzer
mcp-filesystem-server, gitea-mcp, tdd-guard-go
Python 工具 (uv):
markitdown (支持 PDF/DOCX/PPTX/XLSX/Outlook)
markitdown-mcp, serena-agent, mcp-proxy
- GVM: Go Version Manager - 管理多个 Go 版本
- NVM: Node Version Manager - 管理多个 Node.js 版本
- UV: 现代 Python 包和项目管理器
镜像包含以下便捷脚本(位于 /usr/local/bin):
cnb-init-from: CNB 项目初始化脚本
cnb-init-from-without-lfs: 不使用 LFS 的初始化脚本
init-ai-config: AI 配置初始化
sync-ide-extensions: IDE 扩展同步工具
- VSCode 配置:
/root/.local/share/code-server/Machine/settings.json
- Git 配置:
/root/.gitconfig
- Bun 配置:
/root/.bunfig.toml
- Claude Code 配置:
/root/.cnb/claude/ccline/config.toml
- Go 环境:
/root/.cnb/go-env
go install github.com/你的工具/包@latest
nvm install 20
nvm use 20
nvm alias default 20
uv pip install --system 包名
uv tool install 工具名
编辑 Dockerfile 中的扩展列表,然后重新构建镜像:
code-server --force --install-extension 你的.扩展名
- Go 编译: 已默认配置静态链接和优化参数
- C/C++ 编译: 使用
ccache 加速重复编译
- Python: 使用
uv 替代 pip,速度提升 10-100x
- Node.js: 优先使用
bun 进行包安装,比 npm 快得多
MIT License © ZiShuo