logo
1
1
WeChat Login
Forkfromcnb/cool/default-dev-env, aheadmain7 commits, behindmain30 commits

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

Ubuntu 22.04 Docker License

远程开发默认环境镜像,基于 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

🎨 IDE支持

  • VSCode Server: 内置 code-server 及 35+ 专业扩展
  • GoLand: JetBrains GoLand 2025.1

VSCode 扩展列表 (35+)

  • 语言支持:
    • 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)

🚀 使用方式

在 CNB 远程开发环境中使用

VSCode Server (.cnb.yml 示例)

main: vscode: docker: image: docker.cnb.cool/zishuo/default-dev-env:latest services: - vscode - docker

GoLand IDE (.cnb.yml 示例)

main: goland: docker: image: docker.cnb.cool/zishuo/default-dev-env:latest services: - goland

本地 Docker 运行

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,directGOEXPERIMENT=jsonv2
  • Node.js: Bun 配置国内镜像 registry.npmmirror.com
  • Python: UV 工具目录 /opt/uv/tools
  • 时区: Asia/Shanghai
  • 语言: zh_CN.UTF-8

多IDE支持

环境支持多种 IDE 同时使用:

  • VSCode (code-server)
  • GoLand 2025.1
  • 数据库客户端工具 (Database Client2、SQLite Editor)

🌟 设计特点

  1. 基于最新 LTS:Ubuntu 22.04 LTS 作为基础系统,稳定可靠
  2. CNB 优化:使用腾讯云镜像源加速包下载,配置国内 npm/Go 代理,下载飞快
  3. 多语言全栈
    • Go 1.25.4 (GVM 管理) + 30+ 专业工具
    • Node.js 23 (NVM 管理) + Bun/pnpm/yarn 全套包管理器
    • Python 3.12 (UV 管理) + 文档处理工具链
  4. 智能Shell:默认 Zsh + oh-my-zsh + 自动建议 + 语法高亮 + Git 补全
  5. 双 IDE 生态
    • VSCode Server + 35+ 精选扩展
    • JetBrains GoLand 2025.1
  6. 性能优化
    • Go 编译优化: -trimpath, -ldflags "-s -w -extldflags '-static'"
    • CGO 优化: -O3 -march=native
    • 支持静态编译和交叉编译
    • 使用 ccache 加速 C/C++ 编译
  7. AI 编程助手
    • 内置 Claude Code、OpenAI ChatGPT、Roo Cline、腾讯 Coding Copilot
    • 支持 MCP 协议 (mcp-filesystem、gitea-mcp、serena-agent、mcp-proxy)
    • 集成 Claude Code Router 和 Templates
  8. 专业工具链
    • 调试: gdb, valgrind, strace, delve, perf
    • 性能: iperf3, wrk, apache2-utils (ab), benchstat
    • 网络: nmap, tcpdump, mtr, traceroute, dnsutils
    • 监控: htop, iotop, iftop, sysstat
  9. 现代构建工具
    • 多编译器: gcc, g++, clang, llvm
    • 构建系统: make, cmake, meson, ninja
    • 汇编: yasm, nasm
    • 压缩: upx-ucl
  10. 数据库与协议
    • 数据库客户端: Redis, SQLite, PostgreSQL, MySQL
    • Protocol Buffers v25.1 完整工具链
    • 文档处理: markitdown (支持 PDF/Office/Outlook)
  11. 代码质量保障
    • Go: golangci-lint, gocyclo, dupl, govulncheck
    • Shell: shellcheck
    • YAML: yamllint
    • 格式化: clang-format, gofumpt, prettier
  12. 容器友好
    • runit 进程管理
    • 支持多服务编排
    • 镜像层优化,减少体积
  13. 开发者体验
    • 遥测关闭 (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 工具

go install github.com/你的工具/包@latest

切换 Node.js 版本

nvm install 20 nvm use 20 nvm alias default 20

使用 uv 管理 Python 包

# 安装包到系统 uv pip install --system 包名 # 安装全局工具 uv tool install 工具名

配置自定义 VSCode 扩展

编辑 Dockerfile 中的扩展列表,然后重新构建镜像:

code-server --force --install-extension 你的.扩展名

性能调优建议

  1. Go 编译: 已默认配置静态链接和优化参数
  2. C/C++ 编译: 使用 ccache 加速重复编译
  3. Python: 使用 uv 替代 pip,速度提升 10-100x
  4. Node.js: 优先使用 bun 进行包安装,比 npm 快得多

📜 许可协议

MIT License © ZiShuo

About

CNB 远程开发基础镜像

23.40 MiB
1 forks1 stars1 branches0 TagREADMEMIT license
Language
Shell89.6%
Makefile5.9%
Dockerfile4.6%