docs(README): enhance Docker section with installation details and usage instructions

This commit is contained in:
X-iZhang
2026-05-04 15:37:05 +01:00
parent a297445f92
commit d5ffa00263
+66 -1
View File
@@ -157,7 +157,7 @@ EvoScientist 超越了传统的人在回路(Human-in-the-Loop)模式,采
## 📦 安装
> [!TIP]
> 需要 **Python 3.11+**(**< 3.14**)。推荐使用 [**uv**](https://docs.astral.sh/uv/) 或 **conda** 进行依赖管理和虚拟环境管理。
> 需要 **Python 3.11+**(**< 3.14**)。推荐使用 [**uv**](https://docs.astral.sh/uv/) 或 **conda** 进行依赖管理和虚拟环境管理。想完全跳过本地 Python 安装?直接跳转到 [🐳 Docker](#-docker)。
<details>
<summary>🪛 安装 uv(如果尚未安装)</summary>
@@ -254,6 +254,71 @@ git pull && uv sync --dev
</details>
### 🐳 Docker
我们在 [GitHub Container Registry](https://github.com/EvoScientist/EvoScientist/pkgs/container/evoscientist) 上发布了一份预构建镜像,已经包含 `evosci onboard` 通常会为你安装的所有内容:
- Python 3.11、EvoScientist 以及全部跨平台消息渠道(即 `EvoScientist[all-channels]`)
- **`uv`** —— 用于 MCP 注册表按需安装 Python 类 MCP 服务器
- **Node.js 24 LTS + `npx`** —— 大多数 MCP 服务器依赖此运行时
容器中**无法使用 iMessage 渠道**——它需要 `imsg` CLI 与 macOS 的 Messages.app 通信,仅限宿主操作系统。如需 iMessage,请直接在 macOS 上运行 EvoScientist。
在容器中运行 EvoScientist 还会**沙箱化智能体的 Shell 访问**——文件编辑和 Shell 命令仅限于你显式挂载的卷。
```bash
docker run -it --rm \
--env-file .env \
-v "$(pwd)/workspace:/workspace" \
-v evosci-data:/home/evosci/.evoscientist \
ghcr.io/evoscientist/evoscientist:latest
```
各挂载的用途:
| 挂载 | 用途 |
| --- | --- |
| `--env-file .env` | API 密钥(`ANTHROPIC_API_KEY`、`OPENAI_API_KEY` 等) |
| `./workspace:/workspace` | 智能体的工作目录 |
| `evosci-data:/home/evosci/.evoscientist` | 持久化应用状态:会话数据库、全局技能、记忆,以及 `config.yaml` / `mcp.yaml` |
> [!IMPORTANT]
> 镜像以非 root 用户运行(`evosci`,UID `1000`)。`./workspace` bind 挂载的宿主目录必须可被该 UID 写入。如果你的宿主用户 ID 不同,可以一次性 `chown -R 1000:1000 ./workspace`,或在每次 `docker run` 时加上 `--user "$(id -u):$(id -g)"`,让容器使用你的 UID。
也可使用 `docker compose`(仓库自带一个起步用的 [`docker-compose.yml`](./docker-compose.yml)):
```bash
docker compose run --rm evoscientist
```
如果想本地构建而不是拉取镜像:
```bash
docker build -t evoscientist:dev .
```
> [!NOTE]
> 镜像中**未捆绑**以下内容,需要时基于镜像派生安装:
> - **`stt`**(基于 `faster-whisper` 的语音转文字)和 **`oauth`**(`ccproxy-api`)
> - **TinyTeX / LaTeX**(`pdflatex`、`latexmk`),供论文写作类技能使用
>
> ```dockerfile
> FROM ghcr.io/evoscientist/evoscientist:latest
>
> # Python 额外组件
> USER root
> RUN uv pip install --python /opt/venv/bin/python "EvoScientist[stt,oauth]"
> USER evosci
>
> # TinyTeX
> # 官方安装方式是 `curl | sh`;如果你不想把未固定版本的远程脚本
> # 直接管入 shell,可以从 https://github.com/rstudio/tinytex-releases
> # 下载特定版本的 TinyTeX 发布包,校验校验和后解压到
> # /home/evosci/.TinyTeX。
> RUN curl -sL https://yihui.org/tinytex/install-bin-unix.sh | sh \
> && /home/evosci/.TinyTeX/bin/*/tlmgr install latexmk
> ```
<p align="right"><a href="#top">🔝回到顶部</a></p>
## 🔑 配置