Skip to main content

rundeck-mcp-docker-build

Build the Rundeck MCP Docker image. Compiles TypeScript in a multi-stage build and produces a production-ready image that downloads Rundeck docs at container startup. Use after changes to src/, Dockerfile, or docker-entrypoint.sh.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
rundeck/mcp
آخر نشاط في المصدر
١٧ أغسطس ٢٠٢٦ في ٢٢:٣٩
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
rundeck-mcp-docker-build
description
Build the Rundeck MCP Docker image. Compiles TypeScript in a multi-stage build and produces a production-ready image that downloads Rundeck docs at container startup. Use after changes to src/, Dockerfile, or docker-entrypoint.sh.
user-invocable
true
allowed-tools
["Bash","TaskCreate","TaskUpdate"]
# Rundeck MCP — Docker Build Skill **Purpose:** Build the `rundeck-mcp` Docker image from the local source. **When to use:** - After changes to `src/`, `Dockerfile`, or `docker-entrypoint.sh` - To produce an image ready for local testing or publishing **When NOT to use:** - Just want to run the server locally → use `/rundeck-mcp-rebuild` instead (faster, no Docker) --- ## Steps ### Before Starting: Create Task List ``` TaskCreate "Verify environment" TaskCreate "Build Docker image" TaskCreate "Verify image" TaskCreate "Run Docker smoke tests" ``` Store all returned task IDs. --- ### Step 1: Verify Prerequisites ``` TaskUpdate taskId=<verify_id> status="in_progress" ``` ```bash ls Dockerfile docker-entrypoint.sh 2>/dev/null ``` If either file is missing, stop: > "Dockerfile or docker-entrypoint.sh not found. Both ship on `main` — make sure your branch is up to date with `main`." Check Docker is available: ```bash docker info --format '{{.ServerVersion}}' 2>/dev/null || echo "unavailable" ``` If Docker is unavailable, stop: > "Docker daemon is not running. Start Docker Desktop and try again." ``` TaskUpdate taskId=<verify_id> status="completed" ``` --- ### Step 2: Build the Image ``` TaskUpdate taskId=<build_id> status="in_progress" ``` Build with the same tag CircleCI publishes (`rundeck/mcp-ci`) plus today's date as a secondary tag. `.npmrc` points npm at a private Cloudsmith mirror, so `CLOUDSMITH_NPM_TOKEN` must be set in your shell and forwarded in as a build secret (not a build-arg, to avoid leaking it into the image's layer history): ```bash docker build --secret id=cloudsmith_token,env=CLOUDSMITH_NPM_TOKEN \ -t rundeck/mcp-ci:latest -t rundeck/mcp-ci:$(date +%Y%m%d) . 2>&1 ``` If `CLOUDSMITH_NPM_TOKEN` isn't set in the environment, the build will fail with an `npm ci` 401 error. If the build fails, show the full output and stop: > "Docker build failed — see errors above." ``` TaskUpdate taskId=<build_id> status="completed" ``` --- ### Step 3: Verify Image ``` TaskUpdate taskId=<verify_image_id> status="in_progress" ``` ```bash docker image inspect rundeck/mcp-ci:latest --format 'Size: {{.Size}} bytes | Created: {{.Created}}' ``` Print usage instructions: ``` TaskUpdate taskId=<verify_image_id> status="completed" ``` --- ### Step 4: Run Docker Smoke Tests ``` TaskUpdate taskId=<smoke_id> status="in_progress" ``` Verifies the entrypoint's docs fetch, the resulting `/app/docs` layout (including that the media-heavy `.vuepress/public` tree stays excluded except for the carved-out `rundeck-api.yml` OpenAPI spec `api_call` validates against), the `RUNDECK_DOCS_PATH` bypass, the restart/skip-fetch path, and that the server answers a real MCP `initialize` request: ```bash sh ci/docker-smoke-test.sh rundeck/mcp-ci:latest ``` If any check reports `FAIL`, show the full output and stop: > "Docker smoke tests failed — see output above. Do not publish this image." ``` TaskUpdate taskId=<smoke_id> status="completed" ``` --- ### Report ``` Docker image built successfully. Image: rundeck/mcp-ci:latest Smoke tests: PASSED Add to .mcp.json (stdio transport — docs downloaded on first start): "rundeck-mcp": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "RUNDECK_URL=https://your-rundeck.example.com", "-e", "RUNDECK_TOKEN=your-token", "rundeck/mcp-ci:latest"] } ```
عرض على GitHub