Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
.git
.gitignore
.github
.venv
.glama-venv
.pytest_cache
__pycache__
**/__pycache__
*.py[cod]
.fastembed-cache
.planning
benchmarks
tests
assets/*.mp4
docs
examples
*.log
35 changes: 35 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Container image for the stdio MCP server.
#
# Glama builds this to introspect the 29 tools and to offer a deployable image;
# `docker build -t turbo-quant-memory . && docker run -i --rm turbo-quant-memory`
# is the same thing by hand. The server speaks MCP over stdin/stdout, so the
# container is meant to be driven by an MCP client, not published on a port.
FROM python:3.13-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1 \
PIP_DISABLE_PIP_VERSION_CHECK=1 \
TQMEMORY_HOME=/data \
TQMEMORY_DAEMON_DISABLE=1 \
TQMEMORY_MIGRATE_ON_STARTUP=1

# onnxruntime (through fastembed) and pyarrow (through lancedb) load libgomp at
# import time; the slim image does not carry it.
RUN apt-get update \
&& apt-get install -y --no-install-recommends libgomp1 \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . .
RUN pip install .

RUN useradd --create-home --uid 1000 tqmemory \
&& mkdir -p /data \
&& chown -R tqmemory:tqmemory /data
USER tqmemory

# Memory lives in /data; mount a volume to keep it across runs.
VOLUME ["/data"]

CMD ["turbo-memory-mcp", "serve"]
Loading