写在前面
每次开新项目,都要把上一个项目的 .devcontainer/ 翻出来,照着改 image 标签、forwardPorts、postCreateCommand------漏改一个,build 就炸,调半天。
docker-builder 就是为这种场景做的:面向多语言个人 dev 项目(python+cpp / node+python / rust+go 之类)的 dev 环境脚手架。一行命令,5 秒出一个能直接用的 .devcontainer/,base image、工具链、git/sudo/vscode user 通用块都帮你拼好。
长这样
lua
$ docker-builder list
preset image post-create
----------------------------------------------------------------------------
base debian:13-slim bash --version
cpp debian:13-slim g++ --version && cmake --version
go golang:1.26-trixie go version
node-vite node:24-trixie-slim pnpm --version
python python:3.14-slim-trixie uv --version
rust rust:1-trixie rustc --version && cargo --version
$ docker-builder new myapp --preset python cpp
✓ created ./myapp/
✓ created .devcontainer/Dockerfile
✓ created .devcontainer/devcontainer.json
next: cd myapp && docker-builder up
$ cd myapp && docker-builder up
# 自动 build + 启动 + attach shell,Ctrl+D 退到 host
--preset 还能继续叠加:python cpp rust、rust python 都可以。第一个 preset 决定 base image,后面的把各自工具链的 RUN 块加到同一个 base 上,不开 multi-stage。
一些特性
- stdlib only(Python 3.9+),不依赖 pip / brew
- 基于 dev container spec + devcontainer CLI,VS Code / Codespaces / Gitpod 都能直接用
- 6 个内置 preset 在
presets/目录,git 跟踪,怎么改都你说了算 - 生成出来的 Dockerfile 和 devcontainer.json 不会被工具覆盖(
--force才会)
GitHub: github.com/Nemocccc/do...
欢迎有想法的 PR,自己写的小垃圾,要是屎到大家了别介意