curl 能下載、Node.js 卻 fetch failed——在 WSL2 + Docker 裡修好 OpenClaw Telegram Bot 圖片上傳的全過程
我用 OpenClaw 在 WSL2 + Docker 環境架了一個 Telegram Bot,接上 OpenAI Codex 的 vision model,打算讓它能看圖回答問題。結果使用者傳圖片過來,Bot 只回了一句「我看到的是 <media:image>,沒有實際圖片內容」。 這個 Bug 花了我整個晚上,最後發現根因是:OpenClaw 內部的 SSRF 防護機制建立了自己的 HTTP dispatcher,覆蓋掉了 WSL2 專用的 IPv4 網路設定,導致圖片下載靜默失敗。 curl 完全正常,Node.js fetch 卻怎麼都不行。 這篇文章記錄完整的追蹤過程。如果你也用 OpenClaw 架 Telegram Bot、或在 WSL2 + Docker 裡跑 Node.js 服務遇到 TypeError: fetch failed,這篇或許能幫上忙。 什麼是 OpenClawOpenClaw 是一個開源的 AI agent gateway,可以把 LLM(Claude、GPT、Ollama 等)接上 Telegram、Discord、Slack...
用兩個 AI 建立自動化工作流:讓龍蝦當 PM,Claude Code 當工人
凌晨三點,你的電腦正在幫你分析美股、寫技術文章、整理筆記。早上七點,一份完整的晨報自動推送到你的 Notion。白天你在 Telegram 對一隻機器龍蝦說「幫我查一下 NVIDIA 最新財報」,它寫好任務單,另一個 AI 在背景默默把事情做完。 這不是科幻小說,這是我用 Claude Code 和 OpenClaw 搭出來的雙 AI 工作流。 為什麼要用兩個 AI?一個 AI 做所有事情聽起來很美好,但實際跑起來會撞到幾個牆: Claude Code(CC) 是命令列工具,擅長深度工作——寫程式碼、分析資料、產出長篇內容。但它沒有常駐能力,不能 24 小時掛在那裡等你的訊息。 OpenClaw(龍蝦) 是 Docker 容器裡的常駐 AI 閘道,可以接 Telegram、Discord、Slack。它 24 小時在線,隨時能回你訊息。但它的強項是溝通和協調,不是深度工作。 把兩者組合起來:龍蝦當 PM 負責接單和調度,CC 當工人負責執行,各做各擅長的事。 整體架構12345678910111213141516你(Telegram) │ ▼龍蝦(OpenClaw...
Docker 容器化進階:自動化部署與 CI/CD 實戰指南
Docker 容器化進階:自動化部署與 CI/CD 實戰指南本文承接從零開始的 Docker 容器化指南,主要討論如何實現全自動化的 Docker 部署流程。透過整合 GitHub Actions、Docker Hub 和自動化工具,我們可以實現程式碼推送後自動更新生產環境的目標。 目錄 自動化部署概述 GitHub Actions 設定 自動更新容器設定 零停機部署策略 備份與還原機制 監控與告警設定 故障排除與回滾流程 最佳實踐建議 自動化部署概述完整的自動化部署流程包含以下步驟: 開發者推送程式碼到 GitHub GitHub Actions 自動執行測試和建置 建立新的 Docker 映像檔並推送至 Docker Hub 生產環境自動偵測並更新容器 健康檢查確認部署狀態 部署流程圖graph TD A[開發者推送程式碼] --> B[GitHub Actions 觸發] B --> C[執行測試] C --> D[建立 Docker 映像檔] D --> E[推送至 Docker Hub] E...
從零開始的 Docker 容器化指南: Vue3 + .NET Core + SQL Server
從零開始的 Docker 容器化指南: Vue3 + .NET Core + SQL Server目錄 Docker 基礎概念 環境準備 SQL Server 容器設定 .NET Core API 容器化 Vue3 前端容器化 使用 Docker Compose 整合服務 資源管理與監控 開發環境設定 網路配置 部署與維護 常見問題與解決方案 Docker 基礎概念Docker 是一個開放原始碼的容器化平台,它可以讓我們將應用程式和其依賴項打包成一個獨立的容器。容器就像是一個輕量級的虛擬機,可以在任何支援 Docker 的環境中運行。 主要優點: 環境一致性 快速部署 資源效率 易於擴展 環境準備 安裝 Docker Desktop 12345678# Windows/Mac 下載並安裝 Docker Desktophttps://www.docker.com/products/docker-desktop/# Linux (Ubuntu) 安裝 Docker Enginesudo apt updatesudo apt install docker.iosudo...
為什麼你應該使用Docker?
為什麼你應該使用Docker?在現代軟體開發和部署領域中,Docker已經成為一個不可或缺的工具。無論你是開發人員、系統管理員,還是 DevOps 工程師,了解並使用Docker都能為你的工作帶來諸多好處。本文將深入探討為什麼你應該開始使用Docker,以及它能為你的專案和工作流程帶來哪些優勢。 1. 一致的開發環境Docker 最顯著的優勢之一就是能夠創建一致的開發環境。通過使用Docker,你可以確保所有開發人員都在相同的環境中工作,無論他們使用的是什麼操作系統。 消除「在我的機器上可以運行」的問題: Docker容器封裝了應用程式及其所有依賴,確保它在任何地方都能以相同的方式運行。 簡化新成員入職: 新加入的團隊成員可以快速設置開發環境,無需花費大量時間進行配置。 版本控制環境: 你可以輕鬆管理不同版本的開發環境,便於在不同專案間切換。 2. 提高部署效率Docker 極大地簡化了應用程式的部署流程,使得從開發到生產環境的遷移變得更加順暢。 快速部署: Docker 映像檔可以在幾秒鐘內啟動,大大縮短了部署時間。 可移植性: Docker 容器可以在任何支援...
