Skip to content

Commit ae832ff

Browse files
baixiangerclaude
andcommitted
Docker: add persistent volume install for running containers
For running containers (OpenClaw etc.): install bun + snowball-cli into persistent /data/ dir, symlink token, import from host. Survives container restarts without rebuilding image. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8d7a37f commit ae832ff

2 files changed

Lines changed: 32 additions & 26 deletions

File tree

README.md

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -256,28 +256,31 @@ snowball login --chrome /snap/bin/chromium
256256

257257
In Docker containers or AI agent platforms (OpenClaw, etc.) where there's no browser:
258258

259+
**New image:**
260+
259261
```dockerfile
260-
# Option 1: Use official Bun image
261262
FROM oven/bun:latest
262263
RUN bun add -g snowball-cli
263-
264-
# Option 2: Add to existing image
265-
RUN curl -fsSL https://bun.sh/install | bash && \
266-
~/.bun/bin/bun add -g snowball-cli
267264
```
268265

269-
Then inject your token at runtime:
266+
**Running container with persistent volume** (e.g. OpenClaw):
270267

271268
```bash
272-
# From host machine
273-
docker exec <container> snowball import $(snowball export)
274-
275-
# Or via environment variable in docker-compose.yml
276-
environment:
277-
- SNOWBALL_TOKEN=<base64 from snowball export>
269+
# Install bun + snowball-cli into the persistent directory
270+
docker exec <container> bash -c "
271+
export BUN_INSTALL=/data/.bun
272+
curl -fsSL https://bun.sh/install | bash
273+
/data/.bun/bin/bun add -g snowball-cli
274+
ln -sf /data/.snowball-cli ~/.snowball-cli
275+
"
276+
277+
# Import token from host
278+
docker exec <container> /data/.bun/bin/snowball import $(snowball export)
278279
```
279280

280-
For OpenClaw AgentSkill config, install the skill:
281+
Everything lives in `/data/` — survives container restarts.
282+
283+
**Install as OpenClaw AgentSkill:**
281284

282285
```bash
283286
bunx skills add https://github.com/baixianger/snowball-cli

README.zh-CN.md

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -256,28 +256,31 @@ snowball login --chrome /snap/bin/chromium
256256

257257
在 Docker 容器或 AI Agent 平台(OpenClaw 等)中没有浏览器:
258258

259+
**新镜像:**
260+
259261
```dockerfile
260-
# 方式 1:使用官方 Bun 镜像
261262
FROM oven/bun:latest
262263
RUN bun add -g snowball-cli
263-
264-
# 方式 2:在已有镜像中安装
265-
RUN curl -fsSL https://bun.sh/install | bash && \
266-
~/.bun/bin/bun add -g snowball-cli
267264
```
268265

269-
运行时注入 token
266+
**已运行的容器 + 持久化目录**(如 OpenClaw)
270267

271268
```bash
272-
# 从宿主机注入
273-
docker exec <容器> snowball import $(snowball export)
274-
275-
# 或通过 docker-compose.yml 环境变量
276-
environment:
277-
- SNOWBALL_TOKEN=<snowball export 输出的 base64>
269+
# 在持久化目录中安装 bun + snowball-cli
270+
docker exec <容器> bash -c "
271+
export BUN_INSTALL=/data/.bun
272+
curl -fsSL https://bun.sh/install | bash
273+
/data/.bun/bin/bun add -g snowball-cli
274+
ln -sf /data/.snowball-cli ~/.snowball-cli
275+
"
276+
277+
# 从宿主机导入 token
278+
docker exec <容器> /data/.bun/bin/snowball import $(snowball export)
278279
```
279280

280-
作为 OpenClaw AgentSkill 安装:
281+
全部装在 `/data/` 下,容器重启不丢。
282+
283+
**作为 OpenClaw AgentSkill 安装:**
281284

282285
```bash
283286
bunx skills add https://github.com/baixianger/snowball-cli

0 commit comments

Comments
 (0)