FROM python:3.12-slim-bookworm # Copy uv from official image COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ # Set environment variables ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 # Copy the project into the image ADD . /app # Sync the project into a new environment, asserting the lockfile is up to date WORKDIR /app RUN uv sync --locked # Create data directory RUN mkdir -p /app/data # Set default data directory and add venv to PATH ENV BASIC_MEMORY_HOME=/app/data \ PATH="/app/.venv/bin:$PATH" # Expose port EXPOSE 8000 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD basic-memory --version || exit 1 # Use the basic-memory entrypoint to run the MCP server with default SSE transport CMD ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]