Review fixes for the Docker packaging PR: - docker-publish: tie the `latest` tag to pushes on `main` (the release branch). Previously it was gated on `is_default_branch`, but the default branch is `develop` and the workflow never ran there, so `latest` was never produced. main + `v*` tags publish; develop is validated via the pull_request trigger but does not publish. - docker-publish: publish multi-arch amd64+arm64 (Apple Silicon / ARM) on real pushes via setup-qemu-action; PRs stay amd64-only for speed. - docker-publish: only export the GHA cache on in-repo events (fork PRs get a read-only cache, which just emits 403 noise). - docker-publish: add a build-only job that validates Dockerfile.gpu compiles so the CUDA variant can't silently rot. - Dockerfile: correct the persistence comment — the default `minilm` model caches under ~/.cache/chroma (ChromaDB S3), not ~/.cache/huggingface (that's the optional embeddinggemma model). - docker-compose: drop the redundant MEMPALACE_PALACE_PATH override (it duplicated the HOME=/data default); document overrides as examples.
33 lines
1.1 KiB
YAML
33 lines
1.1 KiB
YAML
# MemPalace via Docker Compose.
|
|
#
|
|
# The MCP server speaks JSON-RPC over stdio, so the `mcp` service is meant to
|
|
# be driven interactively (`docker compose run`), not left running detached:
|
|
#
|
|
# docker compose build
|
|
# docker compose run --rm mcp # MCP server over stdio
|
|
# docker compose run --rm mcp cli search "GraphQL" # one-off CLI command
|
|
#
|
|
# The named volume `mempalace-data` is mounted at /data and holds the palace,
|
|
# config, and the cached embedding model across runs.
|
|
|
|
services:
|
|
mcp:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: mempalace:local
|
|
# stdio transport: keep STDIN open and allocate no TTY (raw JSON-RPC).
|
|
stdin_open: true
|
|
tty: false
|
|
volumes:
|
|
- mempalace-data:/data
|
|
environment:
|
|
# Everything defaults correctly from HOME=/data (palace ->
|
|
# /data/.mempalace/palace, config -> /data/.mempalace, model cache ->
|
|
# /data/.cache). Override here only for non-default locations, e.g.:
|
|
# - MEMPALACE_EMBEDDING_MODEL=embeddinggemma # multilingual (default: minilm)
|
|
# - MEMPALACE_PALACE_PATH=/data/custom/palace
|
|
|
|
volumes:
|
|
mempalace-data:
|