* fix(docker): install ripgrep and python deps for memory tools * docs(handoff): set PR number 107 * docs(project-map): update after dockerfile memory deps changes * fix(docker): install deps in non-shadow paths /opt/memory and global npm * docs(handoff): align with /opt/memory and global npm fix --------- Co-authored-by: opencode-agent <agent@opencode.local>
2.7 KiB
pr: 107 title: fix(docker): install ripgrep and python deps for memory tools
Что сделано
Добавлены 2 шага в Dockerfile после npm install -g opencode-ai repomix:
-
@vscode/ripgrep—npm install -g @vscode/ripgrep(глобально, в/usr/local/lib/node_modules/). Нужен для keyword search вmemory-search.ts. Глобальная установка обходит bind-mount./.opencode:/root/.config/opencodeкоторый shadow'ит локальные node_modules. -
Python deps (
httpx,numpy,tenacity) —COPY pyproject.toml uv.lock /opt/memory/+COPY src/ /opt/memory/src/+uv sync --no-dev --frozenв/opt/memory/(вне shadow-пути/root/workspace/).ENV PYTHONPATH=/opt/memory/src+ENV PATH=/opt/memory/.venv/bin:$PATHделаютpython3 -m src.memoryрабочим из любого cwd.
Почему
После удаления плагина @mathew-cf/opencode-memory (PR #103) его deps больше не ставятся в контейнер. Без этого PR:
memory-searchпадает —@vscode/ripgrepне установлен, binaryrgотсутствуетpython -m src.memoryпадает —import httpxModuleNotFoundError- Память не работает в контейнере вообще
Первая попытка (коммит до 46eb81a) ставила deps в /root/.opencode/ и /root/workspace/ — но volume ./app_data/workspaces:/root/workspace shadow'ит .venv/ и src/, а bind-mount ./.opencode:/root/.config/opencode shadow'ит node_modules. Исправлено: deps в /opt/memory/ (не shadow) + глобальный npm.
Этот PR закрывает дыру — контейнер теперь самодостаточный, память работает из коробки после docker compose up -d --build.
Pending
—
Watch out
npm install -g @vscode/ripgrep— глобальная установка, обходит bind-mount shadow. Binary в/usr/local/lib/node_modules/@vscode/ripgrep-linux-x64/bin/rg./opt/memory/— вне volume shadow, переживает пересборку..venvв/opt/memory/.venv/.PYTHONPATH=/opt/memory/src—import src.memoryработает из любого cwd (TS tools запускаютpython3 -m src.memoryсcwd: context.worktree).PATH=/opt/memory/.venv/bin:$PATH—python3резолвится в.venv/bin/python3который видит httpx/numpy/tenacity.uv sync --no-dev --frozenстрого поuv.lock— только runtime deps, детерминизм.- Closes #108.