跳至主要内容

9 篇文章 含有標籤「AWS」

檢視所有標籤

TechSummary 2025-10-10

· 閱讀時間約 6 分鐘
Gemini
AI Assistant

🤖 如何使用 Docker MCP Toolkit 將 MCP 伺服器整合至 Claude Code​

Source: https://www.docker.com/blog/add-mcp-servers-to-claude-code-with-mcp-toolkit/

  • 🚀 MCP 與 Docker MCP Toolkit 簡介: AI 程式碼助手(如 Claude Code)雖功能強大,但無法直接與您的開發環境互動。Model Context Protocol (MCP) 允許 Claude Code 連接真實工具、資料庫、程式碼庫和 API,而 Docker MCP Toolkit 則提供無縫且安全的設定。Docker Desktop 已整合 Claude Code 作為一個可一鍵啟用的客戶端,透過 200 多個預建的容器化 MCP 伺服器,實現快速部署和自動憑證處理。
  • ⚙️ 無摩擦的整合優勢: Docker MCP Toolkit 解決了傳統 MCP 伺服器設定中版本管理、依賴性、明文憑證和跨平台配置不一致等痛點,將數小時的設定時間縮短至數分鐘。它提供一鍵部署、OAuth 或加密儲存的憑證管理、跨 Mac/Windows/Linux 的一致配置以及自動更新。
  • 🛠️ Claude Code 與 Docker MCP Toolkit 的設定步驟:
    1. 安裝 Claude Code: 執行 curl -fsSL https://claude.ai/install.sh | sh 並透過 claude --version 驗證。
    2. 連接 Docker MCP Toolkit: 推薦在 Docker Desktop 的 MCP Toolkit 側邊欄中點擊「Clients」標籤下的「Claude Code」並選擇「Connect」,或手動執行 docker mcp client connect claude-code。這會在專案目錄中建立一個 .mcp.json 檔案,配置 Claude Code 使用 Docker 的 MCP Gateway。
      {
      "mcpServers": {
      "MCP_DOCKER": {
      "command": "docker",
      "args": ["mcp", "gateway", "run"],
      "type": "stdio"
      }
      }
      }
    3. 重新啟動 Claude Code: 執行 claude code。
    4. 驗證連接: 在 Claude Code 中輸入 /mcp 以查看可用的 MCP 伺服器,確認 Docker MCP Gateway 已列出。
  • 🎯 真實世界應用:TODO 轉 Jira 任務自動化: 透過整合 Filesystem MCP(掃描程式碼)、GitHub MCP(獲取 Git blame 資訊)和 Atlassian (Jira) MCP(建立 Jira 任務),Claude Code 可以自動將程式碼中的 TODO 或 FIXME 註解轉換為帶有優先級、程式碼上下文、作者資訊和 GitHub 連結的 Jira 任務,將 20-30 分鐘的手動工作縮短至約 2 分鐘。
    • 操作指令範例: 克隆 https://github.com/ajeetraina/catalog-service-node 專案後,在 claude code 中貼上詳細指令,指示其掃描註解、提取上下文、使用 git blame 識別作者、根據關鍵字判斷優先級(高/中/低),並在 Jira 中建立任務。
    • 指令片段:
      Scan this codebase for all TODO and FIXME comments.
      For each one:
      1. Extract the comment and surrounding code context (5 lines before/after)
      2. Use git blame to identify who wrote it and when
      3. Determine priority based on keywords:
      - High: "race condition", "data loss", "security", "failure", "crash"
      - Medium: "performance", "slow", "cache", "optimization"
      - Low: "documentation", "refactor", "cleanup"
      4. Create a Jira issue with:
      - Project: TD
      - Issue Type: Task
      - Summary: Extract from the TODO/FIXME comment
      - Description: Include code context and explanation
      - Priority: Based on categorization above (use additional_fields: {"priority": {"name": "High"}})
      - Labels: ["tech-debt"]
      - Add a comment with link to exact GitHub file and line number
  • ⏳ 效益分析: 相比手動操作,MCP 整合顯著減少了調試結帳失敗、調查性能問題和進行安全程式碼審查等任務的時間,將長時間的上下文切換轉變為連續的工作流程。

TechSummary 2025-10-07

· 閱讀時間約 7 分鐘
Gemini
AI Assistant

🤖 GitHub Copilot如何提升無障礙治理流程效率​

Source: https://github.blog/ai-and-ml/github-copilot/how-we-automated-accessibility-compliance-in-five-hours-with-github-copilot/

  • GitHub 推出無障礙治理計畫,但面臨服務擁有者延遲處理無障礙修復工作的挑戰。
  • 解決方案:利用 GitHub Copilot 自動化工作流程,在無障礙等級低於標準時,透過 GitHub Actions 自動建立 GitHub Issues,追蹤修復進度。
  • 新工作流程涵蓋:自動建立帶有相關資訊的 Issue、與 GitHub Projects 看板交叉引用、同步負責人、提及相關利害關係人、以及在服務恢復標準後自動關閉 Issue。
  • Copilot 顯著縮短了開發時間:從數週縮短至 5-6 小時即可完成關鍵原型的開發與測試,讓非工程背景的專案經理也能夠建立實用工具。
  • 實作方法:採用輕量級迭代循環,每次專注於一個規則,讓 Copilot 協助搭建或調整程式碼片段,並透過小型合成資料進行本地測試與優化。
  • 成果:即時的 Issue 創建與更新、集中的所有權與狀態追蹤、減少重複通知,並將治理工作從文書追蹤轉向更高價值的系統性分析。

TechSummary 2025-10-03

· 閱讀時間約 6 分鐘
Gemini
AI Assistant

🚀 縮短 AWS CodeBuild 上的 Docker 影像建置時間:使用 Amazon ECR 作為遠端快取​

Source: https://aws.amazon.com/blogs/devops/reduce-docker-image-build-time-on-aws-codebuild-using-amazon-ecr-as-a-remote-cache/

  • 問題與解決方案: Docker 影像建置可能耗時且重複,而 AWS CodeBuild 內建的本機快取僅為暫時性且不可靠。本文章提出使用 Amazon Elastic Container Registry (Amazon ECR) 作為持久性遠端快取後端,以顯著加速 Docker 影像建置流程。
  • 優勢: ECR 提供可靠、長期儲存的快取解決方案,可在不同建置作業中重複使用,且隨時有效,可將影像建置時間減少高達 25%。
  • 實作流程:
    1. 啟用 Docker 驅動程式中的 containerd 影像儲存,透過 docker buildx 命令建立一個新的 docker-container 驅動程式。
    2. 首次執行時,CodeBuild 會從頭建置 Docker 影像,並將新建置的影像及其相關快取匯出到 Amazon ECR。
    3. 後續建置時,CodeBuild 會從 ECR 匯入先前儲存的快取,只重建已更改的層,從而加速建置過程,並將更新後的快取和影像再次儲存到 ECR。
  • 關鍵 CodeBuild buildspec.yaml 片段:
    install:
    commands:
    - docker buildx create --name containerd --driver=docker-container --driver-opt default-load=true

    pre_build:
    commands:
    - aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin ${AWS::AccountId}.dkr.ecr.$AWS_REGION.amazonaws.com

    build:
    commands:
    - cd ./al-lambda/x86_64/dotnet8/
    - docker build --cache-to type=registry,ref=${ECRRepository.RepositoryUri}:${CacheTag},image-manifest=true --cache-from type=registry,ref=${ECRRepository.RepositoryUri}:${CacheTag} --tag ${ECRRepository.RepositoryUri}:${ImageTag} --builder=containerd .

    post_build:
    commands:
    - docker push ${ECRRepository.RepositoryUri}:${ImageTag}
  • 測試結果: 首次建置耗時約 10 分鐘,第二次建置(有微小修改並使用快取)則縮短至約 6 分鐘,證明了快取系統的效率。

TechSummary 2025-09-17

· 閱讀時間約 12 分鐘
Gemini
AI Assistant

如何使用 Cerebras 和 Docker Compose 建構安全的 AI 編程代理 🔐​

Source: https://www.docker.com/blog/cerebras-docker-compose-secure-ai-coding-agents/

  • 本文深入探討如何利用 Cerebras AI 推理 API、Docker Compose、ADK-Python 和 MCP 伺服器,建構可攜、安全且完全容器化的 AI 編程代理環境。
  • 入門設定:首先透過 git clone 取得範例程式碼,並設定 CEREBRAS_API_KEY 於 .env 檔案中,然後執行 docker compose up 啟動系統,代理介面可在 localhost:8000 存取。
    git clone https://github.com/dockersamples/docker-cerebras-demo && cd docker-cerebras-demo
    cp .env-sample .env
    # 編輯 .env 檔案,加入您的 Cerebras API 金鑰
    docker compose up
  • 架構解析:代理系統由三個核心元件組成:代理迴圈(基於 ADK-Python)、MCP 工具(透過 Docker MCP Gateway 提供,如 context7 和 node-sandbox)以及 AI 模型(可選擇本地 Qwen 模型或 Cerebras API 驅動的高性能 Cerebras 代理)。
  • 建構自訂沙箱作為 MCP 伺服器:文中展示如何建構一個安全的程式碼執行沙箱。例如,使用 node-code-sandbox 作為自訂 MCP 伺服器,它是基於 Testcontainers 函式庫的 Quarkus Java 應用程式,可程式化地建立和管理沙箱容器。
  • 沙箱安全性:在沙箱容器中禁用網路 (.withNetworkMode("none")) 是關鍵安全措施,防止代理程式碼外洩資料。例如:
    GenericContainer sandboxContainer = new GenericContainer<>("mcr.microsoft.com/devcontainers/javascript-node:20")
    .withNetworkMode("none") // disable network!!
    .withWorkingDirectory("/workspace")
    .withCommand("sleep", "infinity");
    sandboxContainer.start();
    可在沙箱內執行命令或寫入檔案:
    // 在沙箱內執行命令
    sandbox.execInContainer(command);

    // 將檔案寫入沙箱
    sandbox.copyFileToContainer(Transferable.of(contents.getBytes()), filename);
  • 整合沙箱至 MCP Gateway:將自訂伺服器打包成 Docker 映像後,透過 mcp-gateway-catalog.yaml 檔案整合至 MCP Gateway,並在 docker-compose.yml 中啟用。此設定確保沙箱容器在代理請求時被啟動,並在 Compose 停止時由 Testcontainers 自動清理。
        longLived: true
    image: olegselajev241/node-sandbox@sha256:44437d5b61b6f324d3bb10c222ac43df9a5b52df9b66d97a89f6e0f8d8899f67
  • 容器化沙箱的安全性優勢:容器提供清晰的安全邊界,禁用網路可有效防止資料外洩,同時允許其他工具(如 context7)正常存取網路。

TechSummary 2025-09-16

· 閱讀時間約 11 分鐘
Gemini
AI Assistant

🚀 GitHub MCP 註冊中心:加速發現 MCP 伺服器​

Source: https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/

  • GitHub 正式推出 Model Context Protocol (MCP) 註冊中心,旨在解決 AI 代理(如 GitHub Copilot)與開發工具互動時,MCP 伺服器散佈各處難以發現的問題。
  • MCP 註冊中心作為集中平台,簡化了 MCP 伺服器的探索、瀏覽和使用,促進更開放、互通的 AI 生態系統。
  • 它提供多項功能,包括在 VS Code 內的一鍵安裝發現能力、依據 GitHub 星標和社群活躍度排序、以及與 GitHub Copilot 和任何 MCP 相容主機的整合。
  • 未來規劃允許開發者直接發布 MCP 伺服器至開源 MCP 社群註冊中心,並自動同步至 GitHub MCP 註冊中心,以建立統一且可擴展的發現路徑。

TechSummary 2025-09-11

· 閱讀時間約 13 分鐘
Gemini
AI Assistant

📉 GitHub 2025 年 8 月可用性報告​

Source: https://github.blog/news-insights/company-news/github-availability-report-august-2025/

  • 8 月 5 日事件 (32 分鐘):因資料庫遷移過程中,ORM 仍引用已刪除的欄位,導致推播、Webhooks、通知和拉取請求出現錯誤率升高(峰值達 4% 的 Web 和 REST API 流量)。GitHub 通過部署變更,指示 ORM 忽略該欄位來緩解問題。此事件揭露了應用程式監控的漏洞以及跨環境更新的不足。
  • 8 月 12 日事件 (3 小時 44 分鐘):GitHub 搜尋服務降級,使用者遇到不準確的結果、部分頁面(如 issues, pull requests)載入失敗。問題源於負載平衡器與搜尋主機間的間歇性連線問題,最終導致重試佇列超載。通過限制搜尋索引管道和自動重啟搜尋主機解決。GitHub 隨後改進了內部監控、操作手冊並調整了負載平衡器。
  • 8 月 27 日事件 (46 分鐘):Copilot、Web 和 REST API 流量性能降級。此事件與 8 月 5 日類似,也是因資料庫遷移刪除欄位但 ORM 仍引用所致,導致 Copilot 請求高達 77% 的失敗率。GitHub 應用了生產模式修復並實施了臨時阻止所有刪除欄位操作的措施,同時也在開發 Copilot 的優雅降級機制,以避免其問題影響其他功能。

TechSummary 2025-07-17

· 閱讀時間約 3 分鐘
OpenAI
AI Assistant

GoFiber v3 + Testcontainers:生產級本地開發的解決方案 🐳​

Source: https://www.docker.com/blog/go-local-dev-fiber-v3-testcontainers/

  • Fiber v3推出「Services」抽象,能夠管理App相依的外部服務(如資料庫、佇列等)並整合Testcontainers,提升本地開發的復現性與嚴謹度
  • 新增contrib模組,讓Fiber能與Testcontainers整合,支援實際服務容器的建立與生命周期管理
  • 示範用PostgreSQL容器作為存取層,並加入熱重載與容器重用管理(禁用Ryuk、命名容器)
  • 介紹完整的多階段設定流程:設定依賴、建立服務、整合生命周期、優化本地重用、拉取資料庫連線字串
  • 示範應用:結合air熱重載並進行優雅結束,還能在測試中自動建立隔離資料庫
  • 強調結合Testcontainers與Fiber的策略可達到「親像生產的本地環境」,減少環境差異與錯誤

TechSummary 2025-07-14

· 閱讀時間約 4 分鐘
OpenAI
AI Assistant

AI在程式碼審查中的角色:開發者永遠擁有合併按鈕 🛠️​

Source: GitHub Blog
重點總結:

  • GitHub自2008年推出PR機制,結合社交流程(評論、批准與合併按鈕),將程式碼貢獻的責任硬性規定給開發者。
  • 雖然大型語言模型(LLM)可以協助生成PR、回覆評論,但最終「合併」責任仍由人類開發者承擔。
  • AI Review只能處理瑣碎事項(如未用到的import、缺少測試)且不能判斷設計是否符合產品需求或安全策略。
  • GitHub Copilot的AI審查功能已正式推出,可以在IDE中預先自動檢測問題,減少人為瑣碎工作,讓開發者專注在重要決策上。
  • AI目前能擅長「机械掃描」和「模式匹配」等重複性任務,但在架構、價值觀判斷和指導性教學上仍需人類干預。

我的看法:
AI的角色更多是擴充而非取代開發者的判斷力,能協助提升效率卻不會取代人類對於架構與價值的專屬決策。