From 5804fe0437a4fea3eea261faa899081722a23d93 Mon Sep 17 00:00:00 2001 From: Simon Franken Date: Fri, 20 Mar 2026 16:15:54 +0100 Subject: [PATCH] add Docker support for running caldav-mcp Introduce a multi-stage Docker build and runtime image so the server can be built and launched consistently across environments, and document build/run usage in README. --- .dockerignore | 10 ++++++++++ Dockerfile | 24 ++++++++++++++++++++++++ README.md | 16 ++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..0d1627f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +node_modules +dist +.git +.gitignore +npm-debug.log +README.md +docs +tests +.env +.env.* diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..51b96f6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM node:20-bookworm-slim AS builder + +WORKDIR /app + +COPY package*.json ./ +RUN npm ci + +COPY tsconfig.json ./ +COPY src ./src +RUN npm run build + +FROM node:20-bookworm-slim AS runtime + +WORKDIR /app +ENV NODE_ENV=production + +COPY package*.json ./ +RUN npm ci --omit=dev + +COPY --from=builder /app/dist ./dist + +EXPOSE 3000 + +CMD ["node", "dist/index.js"] diff --git a/README.md b/README.md index b98f82b..a4615b8 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,22 @@ npm run build npm test ``` +## Docker + +Build the image: + +```bash +docker build -t caldav-mcp . +``` + +Run the container: + +```bash +docker run --rm -p 3000:3000 --env-file .env caldav-mcp +``` + +The server listens on port `3000` in the container. + ## MCP Tools - `caldav_discover_principal`