你的 Bun 项目还在手动配 Docker?这个 Skill 让你 5 分钟搞定生产级容器
你的 Bun 项目还在手动配 Docker?这个 Skill 让你 5 分钟搞定生产级容器 🚀
Bun 快,但 Dockerize 的坑一点不少。
我之前把一个 Bun 项目塞进 Docker,光多阶段构建就调了三遍——依赖层没缓存好,产物复制路径写错了,生产镜像大到离谱。好不容易跑起来,用户权限、HEALTHCHECK、热重载又一个接一个的坑。
后来发现了 bun-docker,一个专门给 Bun 项目用的 Docker Skill。装上之后,这些问题基本没再操心过。
镜像选择:按需Pick,大小随心
Bun 官方给了好几种镜像变体:
oven/bun:latest— 完整版,~100MBoven/bun:slim— 精简版,~80MBoven/bun:alpine— Alpine 系,~50MBoven/bun:distroless— 极致安全版,~60MB
生产用 slim 或 distroless,开发用 alpine 配热重载,一行改一下的事。
多阶段构建:镜像体积直接砍半
最让我惊喜的是 Multi-Stage Build 模板——builder 阶段跑 bun run build,生产阶段只复制编译产物,非 root 用户跑,镜像干净又安全。
FROM oven/bun:1 AS builder
WORKDIR /app
COPY . .
RUN bun install --frozen-lockfile
RUN bun run build
FROM oven/bun:1-slim AS production
WORKDIR /app
COPY --from=builder /app/dist ./dist
USER bun
CMD ["bun", "run", "dist/index.js"]
生产镜像直接从 ~100MB 砍到 ~40MB。
热重载 + Docker Compose:本地开发爽到飞起
开发阶段一条命令进容器:
docker compose run --rm app bun --hot run src/index.ts
改代码实时生效,不用每次 docker compose build。
健康检查 + 常见错误表:少踩 80% 的坑
文档里直接给了一张错误对照表:
| 错误 | 原因 | 解法 |
|---|---|---|
| bun.lockb not found | 锁文件没在容器里 | 先在本地 bun install |
| EACCES permission | 文件归属问题 | 用 --chown=bun:bun |
| OOM killed | 内存不够 | 调大容器内存限制 |
遇到问题直接查表,不用再翻 Stack Overflow。
适合谁用?
- 已经在用 Bun 想上容器
- 从 Node 迁到 Bun 需要重新配 Docker
- 想给 Bun 项目建立标准 Docker 模板的团队
嫌手动配 Docker 麻烦的,直接装这个,5 分钟出生产级镜像。
GitHub:https://github.com/secondsky/claude-skills/tree/main/plugins/bun/skills/bun-docker
GitHub: https://github.com/secondsky/claude-skills/tree/main/plugins/bun/skills/bun-docker
评论区
0 条评论
登录后可评论。