From 755423cf4e93b4a370250f229bac9f8f84338637 Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Sun, 15 Mar 2026 10:28:04 +0000 Subject: [PATCH] fix: correct infrahub-mcp Dockerfile and README (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What changed Fixes the build failure caused by wrong upstream repo URL and missing default branch. ### Dockerfile - **Repo URL**: `opsmill/infrahub-mcp` (was `opsmill/infrahub-mcp-server`) - **Default branch**: clone without `--branch` when `INFRAHUB_MCP_VERSION` is unset, so the upstream default branch is used automatically - **Secrets warning**: removed `ENV INFRAHUB_API_TOKEN=""` — the token should be passed at runtime via `-e`, not baked into the image - **Comments**: rewritten in English ### README - Fixed upstream repo link - Clarified that `INFRAHUB_API_TOKEN` is required at runtime Reviewed-on: https://gitea.arnodo.fr/Damien/docker-images/pulls/7 --- images/infrahub-mcp/Dockerfile | 27 +++++++++++++++++---------- images/infrahub-mcp/README.md | 8 ++++---- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/images/infrahub-mcp/Dockerfile b/images/infrahub-mcp/Dockerfile index 90c2aee..9233998 100644 --- a/images/infrahub-mcp/Dockerfile +++ b/images/infrahub-mcp/Dockerfile @@ -1,30 +1,37 @@ FROM python:3.13-slim -# Dépendances système pour uv et build éventuel de wheels +# System dependencies for uv and potential wheel builds RUN apt-get update && \ apt-get install -y --no-install-recommends git ca-certificates curl && \ rm -rf /var/lib/apt/lists/* -# Installer uv +# Install uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv -# Cloner le repo MCP server upstream -ARG INFRAHUB_MCP_VERSION=main -RUN git clone --depth 1 --branch ${INFRAHUB_MCP_VERSION} \ - https://github.com/opsmill/infrahub-mcp-server.git /app +# Clone the upstream MCP server repository +# Use INFRAHUB_MCP_VERSION to pin a specific tag/branch at build time +# When left empty, the repo's default branch is used +ARG INFRAHUB_MCP_VERSION="" +RUN if [ -n "${INFRAHUB_MCP_VERSION}" ]; then \ + git clone --depth 1 --branch "${INFRAHUB_MCP_VERSION}" \ + https://github.com/opsmill/infrahub-mcp.git /app; \ + else \ + git clone --depth 1 \ + https://github.com/opsmill/infrahub-mcp.git /app; \ + fi WORKDIR /app -# Installer les dépendances Python via uv +# Install Python dependencies via uv RUN uv sync --frozen --no-dev -# Variables d'environnement par défaut +# Default environment variables +# INFRAHUB_API_TOKEN should be passed at runtime (not baked into the image) ENV INFRAHUB_ADDRESS=http://localhost:8000 -ENV INFRAHUB_API_TOKEN="" ENV MCP_HOST=0.0.0.0 ENV MCP_PORT=8001 EXPOSE 8001 -# Lancer le serveur MCP en mode SSE (accessible via réseau) +# Run the MCP server in SSE mode (network-accessible) ENTRYPOINT ["uv", "run", "fastmcp", "run", "src/infrahub_mcp/server.py:mcp", "--transport", "sse"] diff --git a/images/infrahub-mcp/README.md b/images/infrahub-mcp/README.md index c9b7211..31f1be9 100644 --- a/images/infrahub-mcp/README.md +++ b/images/infrahub-mcp/README.md @@ -1,16 +1,16 @@ # infrahub-mcp -Docker image for the Infrahub MCP server ([OpsMill](https://github.com/opsmill/infrahub-mcp-server)). +Docker image for the Infrahub MCP server ([OpsMill](https://github.com/opsmill/infrahub-mcp)). -Packages the infrahub-mcp-server into a ready-to-use container, -running the server in SSE mode on port 8001. +Packages the infrahub-mcp server into a ready-to-use container, +running in SSE mode on port 8001. ## Environment variables | Variable | Description | Default | |----------------------|----------------------------------|--------------------------| | `INFRAHUB_ADDRESS` | Infrahub instance URL | `http://localhost:8000` | -| `INFRAHUB_API_TOKEN` | Infrahub API token | (empty) | +| `INFRAHUB_API_TOKEN` | Infrahub API token | *(required at runtime)* | | `MCP_HOST` | Listen address | `0.0.0.0` | | `MCP_PORT` | Listen port | `8001` |