FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim ENV PATH="/usr/local/bin:${PATH}" # Install nanobot into the system Python so channel plugins can share the same environment. RUN uv pip install --system --upgrade nanobot-ai -i https://pypi.tuna.tsinghua.edu.cn/simple # Persist nanobot config/workspace here via volume mount. RUN mkdir -p /root/.nanobot /opt/mcp /opt/plugins # Preinstall local channel plugin into the same env as nanobot (entry point discovery). COPY nanobot-channel-web /opt/plugins/nanobot-channel-web RUN uv pip install --system /opt/plugins/nanobot-channel-web -i https://pypi.tuna.tsinghua.edu.cn/simple # Preinstall local MCP project dependencies into the image. COPY MCP /opt/mcp RUN uv pip install --system -e /opt/mcp/mars-mcp -e /opt/mcp/map-mcp -i https://pypi.tuna.tsinghua.edu.cn/simple WORKDIR /workspace EXPOSE 18790 8005 9000 ENTRYPOINT ["nanobot"] CMD ["status"]