vestige/Dockerfile
Sam Valladares ef4cefaa40
Add Dockerfile for MCP registry introspection (Glama) (#95)
Lets registries such as Glama start the server in an isolated sandbox and
run the standard MCP stdio introspection (tools/list, resources/list,
prompts/list) so the listing passes its checks and scores.

- node:20-slim (glibc) base, required because the npm postinstall downloads
  the prebuilt x86_64-unknown-linux-gnu binary (a -gnu binary will not run on
  musl/Alpine).
- Installs vestige-mcp-server@latest globally; postinstall fetches the binary.
- VESTIGE_DATA_DIR=/data keeps memory state inside the container.
- ENTRYPOINT vestige-mcp speaks MCP over stdio.

Verified locally: npm install + postinstall fetch the binary, the server boots,
runs its migrations, and answers initialize + tools/list over stdio.
2026-06-26 16:14:51 -05:00

28 lines
1.2 KiB
Docker

# Dockerfile for running the Vestige MCP server in an isolated sandbox.
#
# Used by registries such as Glama to start the server and run the standard
# MCP stdio introspection exchange (tools/list, resources/list, prompts/list).
# The server speaks MCP over stdio, which is exactly what these tools expect.
#
# Base must be glibc (Debian), not musl/Alpine: the npm postinstall downloads
# the prebuilt x86_64-unknown-linux-gnu Rust binary from the GitHub release, and
# a -gnu binary will not run on an Alpine/musl image.
FROM node:20-slim
# ca-certificates lets the postinstall fetch the release asset over HTTPS.
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Install the published package globally. Its postinstall downloads the matching
# prebuilt vestige-mcp binary for linux/x64 from the GitHub release.
RUN npm install -g vestige-mcp-server@latest
# Keep all memory data inside the container under a writable path.
ENV VESTIGE_DATA_DIR=/data
RUN mkdir -p /data
# Start the MCP server on stdio. The `vestige-mcp` bin execs the native binary
# and inherits stdio, so the MCP client talks to it directly.
ENTRYPOINT ["vestige-mcp"]