mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
29 lines
29 KiB
HTML
29 lines
29 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>Troubleshooting | Memoh Documentation</title>
|
||
<meta name="description" content="Multi-Member, Structured Long-Memory, Containerized AI Agent System.">
|
||
<meta name="generator" content="VitePress v1.6.4">
|
||
<link rel="preload stylesheet" href="/assets/style.BZIg-cXr.css" as="style">
|
||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||
|
||
<script type="module" src="/assets/app.GclA5Rgp.js"></script>
|
||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.DcdcgJt5.js">
|
||
<link rel="modulepreload" href="/assets/chunks/framework.DEqXEGcv.js">
|
||
<link rel="modulepreload" href="/assets/troubleshooting.md.DEVYH0Du.lean.js">
|
||
<link rel="icon" href="/logo.png">
|
||
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-ecfbf7a9><!--[--><!--]--><!--[--><span tabindex="-1" data-v-639cd3d8></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-639cd3d8>Skip to content</a><!--]--><!----><header class="VPNav" data-v-ecfbf7a9 data-v-39691f49><div class="VPNavBar" data-v-39691f49 data-v-d92360c8><div class="wrapper" data-v-d92360c8><div class="container" data-v-d92360c8><div class="title" data-v-d92360c8><div class="VPNavBarTitle has-sidebar" data-v-d92360c8 data-v-d3560e07><a class="title" href="/" data-v-d3560e07><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo.png" alt="Memoh" data-v-a9ec2bb1><!--]--><span data-v-d3560e07>Memoh</span><!--[--><!--]--></a></div></div><div class="content" data-v-d92360c8><div class="content-body" data-v-d92360c8><!--[--><!--]--><div class="VPNavBarSearch search" data-v-d92360c8><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><!----><div class="VPFlyout VPNavBarTranslations translations" data-v-d92360c8 data-v-f7e0dd34 data-v-500c8661><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-500c8661><span class="text" data-v-500c8661><span class="vpi-languages option-icon" data-v-500c8661></span><!----><span class="vpi-chevron-down text-icon" data-v-500c8661></span></span></button><div class="menu" data-v-500c8661><div class="VPMenu" data-v-500c8661 data-v-78767497><!----><!--[--><!--[--><div class="items" data-v-f7e0dd34><p class="title" data-v-f7e0dd34>English</p><!--[--><div class="VPMenuLink" data-v-f7e0dd34 data-v-adc65559><a class="VPLink link" href="/zh/troubleshooting.html" data-v-adc65559><!--[--><span data-v-adc65559>简体中文</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-d92360c8 data-v-7208450f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-7208450f data-v-0c13c3df data-v-be020907><span class="check" data-v-be020907><span class="icon" data-v-be020907><!--[--><span class="vpi-sun sun" data-v-0c13c3df></span><span class="vpi-moon moon" data-v-0c13c3df></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-d92360c8 data-v-1a196069 data-v-a84d2f45><!--[--><a class="VPSocialLink no-icon" href="https://github.com/memohai/Memoh" aria-label="github" target="_blank" rel="noopener" data-v-a84d2f45 data-v-0890861b><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-d92360c8 data-v-c2346f84 data-v-500c8661><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-500c8661><span class="vpi-more-horizontal icon" data-v-500c8661></span></button><div class="menu" data-v-500c8661><div class="VPMenu" data-v-500c8661 data-v-78767497><!----><!--[--><!--[--><div class="group translations" data-v-c2346f84><p class="trans-title" data-v-c2346f84>English</p><!--[--><div class="VPMenuLink" data-v-c2346f84 data-v-adc65559><a class="VPLink link" href="/zh/troubleshooting.html" data-v-adc65559><!--[--><span data-v-adc65559>简体中文</span><!--]--></a></div><!--]--></div><div class="group" data-v-c2346f84><div class="item appearance" data-v-c2346f84><p class="label" data-v-c2346f84>Appearance</p><div class="appearance-action" data-v-c2346f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-c2346f84 data-v-0c13c3df data-v-be020907><span class="check" data-v-be020907><span class="icon" data-v-be020907><!--[--><span class="vpi-sun sun" data-v-0c13c3df></span><span class="vpi-moon moon" data-v-0c13c3df></span><!--]--></span></span></button></div></div></div><div class="group" data-v-c2346f84><div class="item social-links" data-v-c2346f84><div class="VPSocialLinks social-links-list" data-v-c2346f84 data-v-a84d2f45><!--[--><a class="VPSocialLink no-icon" href="https://github.com/memohai/Memoh" aria-label="github" target="_blank" rel="noopener" data-v-a84d2f45 data-v-0890861b><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-d92360c8 data-v-c0ff09b3><span class="container" data-v-c0ff09b3><span class="top" data-v-c0ff09b3></span><span class="middle" data-v-c0ff09b3></span><span class="bottom" data-v-c0ff09b3></span></span></button></div></div></div></div><div class="divider" data-v-d92360c8><div class="divider-line" data-v-d92360c8></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-ecfbf7a9 data-v-42b4930c><div class="container" data-v-42b4930c><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-42b4930c><span class="vpi-align-left menu-icon" data-v-42b4930c></span><span class="menu-text" data-v-42b4930c>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-42b4930c data-v-65f11ad7><button data-v-65f11ad7>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-ecfbf7a9 data-v-aee49e2a><div class="curtain" data-v-aee49e2a></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-aee49e2a><span class="visually-hidden" id="sidebar-aria-label" data-v-aee49e2a> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-60f157c0><section class="VPSidebarItem level-0" data-v-60f157c0 data-v-df85d8e3><!----><div class="items" data-v-df85d8e3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/index.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/getting-started.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>About Memoh</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-60f157c0><section class="VPSidebarItem level-0" data-v-60f157c0 data-v-df85d8e3><div class="item" role="button" tabindex="0" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><h2 class="text" data-v-df85d8e3>Installation</h2><!----></div><div class="items" data-v-df85d8e3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/installation/docker.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>Docker</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/installation/config-toml.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>config.toml</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-60f157c0><section class="VPSidebarItem level-0" data-v-60f157c0 data-v-df85d8e3><div class="item" role="button" tabindex="0" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><h2 class="text" data-v-df85d8e3>Getting Started</h2><!----></div><div class="items" data-v-df85d8e3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/getting-started/provider-and-model.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>Provider and Model</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-60f157c0><section class="VPSidebarItem level-0" data-v-60f157c0 data-v-df85d8e3><div class="item" role="button" tabindex="0" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><h2 class="text" data-v-df85d8e3>CLI</h2><!----></div><div class="items" data-v-df85d8e3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/index.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/auth.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>authentication</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/config.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/provider.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>provider</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/model.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>model</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/bot.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>bot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/channel.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>channel</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/schedule.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>schedule</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-df85d8e3 data-v-df85d8e3><div class="item" data-v-df85d8e3><div class="indicator" data-v-df85d8e3></div><a class="VPLink link link" href="/cli/chat.html" data-v-df85d8e3><!--[--><p class="text" data-v-df85d8e3>chat</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-ecfbf7a9 data-v-df015b7a><div class="VPDoc has-sidebar has-aside" data-v-df015b7a data-v-c0d172cc><!--[--><!--]--><div class="container" data-v-c0d172cc><div class="aside" data-v-c0d172cc><div class="aside-curtain" data-v-c0d172cc></div><div class="aside-container" data-v-c0d172cc><div class="aside-content" data-v-c0d172cc><div class="VPDocAside" data-v-c0d172cc data-v-4e31e231><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-4e31e231 data-v-e382fc21><div class="content" data-v-e382fc21><div class="outline-marker" data-v-e382fc21></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-e382fc21>On this page</div><ul class="VPDocOutlineItem root" data-v-e382fc21 data-v-21fe7f0b><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-4e31e231></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c0d172cc><div class="content-container" data-v-c0d172cc><!--[--><!--]--><main class="main" data-v-c0d172cc><div style="position:relative;" class="vp-doc _troubleshooting" data-v-c0d172cc><div><h1 id="troubleshooting" tabindex="-1">Troubleshooting <a class="header-anchor" href="#troubleshooting" aria-label="Permalink to "Troubleshooting""></a></h1><h2 id="mcp-container-no-running-task-found-task-mcp-xxx-not-found" tabindex="-1">MCP Container: <code>no running task found: task mcp-xxx not found</code> <a class="header-anchor" href="#mcp-container-no-running-task-found-task-mcp-xxx-not-found" aria-label="Permalink to "MCP Container: `no running task found: task mcp-xxx not found`""></a></h2><h3 id="symptom" tabindex="-1">Symptom <a class="header-anchor" href="#symptom" aria-label="Permalink to "Symptom""></a></h3><p>When a bot tries to use container tools (e.g., execute commands), the server logs show:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>level=WARN msg="exec failed" provider=container_tool bot_id=xxx command=date error="no running task found: task mcp-xxx not found"</span></span></code></pre></div><p>The containerd container logs may also show:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>level=error msg="failed to delete task" error="rpc error: code = NotFound desc = container not created: not found"</span></span></code></pre></div><h3 id="cause" tabindex="-1">Cause <a class="header-anchor" href="#cause" aria-label="Permalink to "Cause""></a></h3><p>The <code>[mcp] data_root</code> in <code>config.toml</code> is set to a <strong>host machine path</strong> (e.g., <code>/Users/you/Code/Memoh/data</code>), but the server and containerd containers use a Docker named volume mounted at <code>/opt/memoh/data</code>.</p><p>When the server creates an MCP container inside containerd, it uses <code>data_root</code> as the mount source. Since this host path does not exist inside the containerd container, <code>runc</code> fails with:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>failed to fulfil mount request: open /Users/you/Code/Memoh/data/bots/xxx: no such file or directory</span></span></code></pre></div><h3 id="solution" tabindex="-1">Solution <a class="header-anchor" href="#solution" aria-label="Permalink to "Solution""></a></h3><ol><li>Set <code>data_root</code> to the in-container path in your config:</li></ol><div class="language-toml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">toml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">mcp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">data_root = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"/opt/memoh/data"</span></span></code></pre></div><ol start="2"><li>Clean up the stale containerd container (if it exists):</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containers</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mcp-</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">bot-i</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></div><ol start="3"><li>Restart the server:</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> restart</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> server</span></span></code></pre></div><blockquote><p><strong>Note</strong>: If you also run the server locally (outside Docker), keep the Docker config (<code>docker/config/config.docker.toml</code>) separate from your local <code>config.toml</code>, and update <code>docker-compose.yml</code> to mount the Docker-specific config instead.</p></blockquote><h2 id="mcp-container-image-update-not-taking-effect-after-rebuild" tabindex="-1">MCP Container: Image update not taking effect after rebuild <a class="header-anchor" href="#mcp-container-image-update-not-taking-effect-after-rebuild" aria-label="Permalink to "MCP Container: Image update not taking effect after rebuild""></a></h2><h3 id="symptom-1" tabindex="-1">Symptom <a class="header-anchor" href="#symptom-1" aria-label="Permalink to "Symptom""></a></h3><p>After updating <code>Dockerfile.containerd</code> (e.g., adding Node.js/Python to the MCP image), rebuilding and restarting the containerd container, MCP tools still fail with errors like:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>exec: "npx": executable file not found in $PATH</span></span></code></pre></div><h3 id="cause-1" tabindex="-1">Cause <a class="header-anchor" href="#cause-1" aria-label="Permalink to "Cause""></a></h3><p>The containerd entrypoint script (<code>containerd-entrypoint.sh</code>) skips image import if the image already exists in containerd's image store:</p><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">if</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> !</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "name==${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">MCP_IMAGE</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">; </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">then</span></span>
|
||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # import</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">fi</span></span></code></pre></div><p>Since <code>containerd_data</code> is a persistent Docker volume, the old MCP image survives across container restarts. The new image embedded in the rebuilt Docker image is never imported.</p><h3 id="solution-1" tabindex="-1">Solution <a class="header-anchor" href="#solution-1" aria-label="Permalink to "Solution""></a></h3><ol><li>Remove the old MCP image from containerd:</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker.io/library/memoh-mcp:latest</span></span></code></pre></div><ol start="2"><li>Restart the containerd container to trigger re-import:</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> restart</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span></span></code></pre></div><ol start="3"><li>Verify the new image was imported (size should be significantly larger if Node.js/Python were added):</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ls</span></span></code></pre></div><ol start="4"><li>Delete the bot's MCP container and recreate it from the bot detail page so it uses the new image.</li></ol></div></div></main><footer class="VPDocFooter" data-v-c0d172cc data-v-d650fb62><!--[--><!--]--><div class="edit-info" data-v-d650fb62><div class="edit-link" data-v-d650fb62><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/troubleshooting.md" target="_blank" rel="noreferrer" data-v-d650fb62><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d650fb62></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d650fb62><p class="VPLastUpdated" data-v-d650fb62 data-v-744e3437>Last Updated: <time datetime="2026-02-12T18:15:09.000Z" data-v-744e3437></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d650fb62><span class="visually-hidden" id="doc-footer-aria-label" data-v-d650fb62>Pager</span><div class="pager" data-v-d650fb62><!----></div><div class="pager" data-v-d650fb62><a class="VPLink link pager-link next" href="/index.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Next page</span><span class="title" data-v-d650fb62>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-ecfbf7a9 data-v-cea6e03e><div class="container" data-v-cea6e03e><p class="message" data-v-cea6e03e>Published under AGPLv3</p><p class="copyright" data-v-cea6e03e>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bp0XdM9y\",\"cli_provider.md\":\"CEEKGN01\",\"cli_schedule.md\":\"DSG0HQuo\",\"getting-started.md\":\"B026JaLd\",\"getting-started_provider-and-model.md\":\"Ix_AFx48\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||
|
||
</body>
|
||
</html> |