https://github.com/srcrs/docker-cli-wrapper
https://github.com/srcrs/docker-cli-wrapper
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/srcrs/docker-cli-wrapper
- Owner: srcrs
- Created: 2026-05-10T11:16:16.000Z (20 days ago)
- Default Branch: main
- Last Pushed: 2026-05-10T11:32:10.000Z (20 days ago)
- Last Synced: 2026-05-10T13:42:22.861Z (20 days ago)
- Language: Python
- Size: 181 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Docker CLI Wrapper
用 Docker 运行 npm 工具,主机不需要安装 Node.js/npm。
## 原理
每个 npm 工具用一个 shell wrapper 封装,通过 `docker run` 直接执行,用完即删,配置文件通过 volume 挂载到 `~/.tool-name`,运行后自动修复属主。
参考了 [Trellis CLI](https://github.com/mindfoldhq/trellis) 的实现方式。
## 结构
```
.
├── wrappers/ # wrapper 脚本目录
│ ├── mmx # MiniMax CLI wrapper
│ └── trellis # Trellis CLI wrapper
├── Makefile
└── README.md
```
## 添加新 wrapper
复制 `wrappers/mmx` 模板,改三处:
```bash
#!/usr/bin/env bash
# wrapper - runs inside Docker
set -e
_uid=$(id -u)
_gid=$(id -g)
_config_dir="${HOME}/."
exec docker run --rm -i \
-v "${_config_dir}:/home/app/." \
-w /home/app \
node:22-alpine \
sh -c "
npm install -g --force >/dev/null 2>&1
_rc=0
\"\$@\" || _rc=\$?
find /home/app/. -not -user ${_uid} -exec chown ${_uid}:${_gid} {} + 2>/dev/null || true
exit \$_rc
" -- "$@"
```
安装到 `~/.local/bin/`:
```bash
cp wrappers/ ~/.local/bin/
chmod +x ~/.local/bin/
```
## 当前可用
### mmx (MiniMax CLI)
```bash
# 安装
cp wrappers/mmx ~/.local/bin/mmx && chmod +x ~/.local/bin/mmx
# 配置(API key 存在 ~/.mmx/config.json)
mmx config set --key api-key --value your-key
mmx config set --key region --value cn
# 使用
mmx text chat "hello"
mmx image generate "一只猫"
mmx speech synthesize "你好"
mmx music generate "轻快音乐"
```
### trellis (Trellis CLI)
```bash
# 安装
cp wrappers/trellis ~/.local/bin/trellis && chmod +x ~/.local/bin/trellis
# 使用(在仓库根目录执行)
trellis check
trellis implement "task-name"
```
注意:trellis wrapper 会在容器内自动安装 python3、git、bash 等依赖。