Files
docker-registry/.qoder/repowiki/zh/meta/repowiki-metadata.json
danial 1ecefc80af chore(docker): 优化 Playwright 浏览器安装和配置
- 设置 PLAYWRIGHT_BROWSERS_PATH 环境变量指向 /app/.browsers
- 创建 /app/.browsers 目录用于存放浏览器文件
- 分别以 root 用户和 appuser 用户执行 Playwright 依赖和浏览器安装
- 提升 /app/.browsers 目录权限,保证 appuser 访问权限
- 调整安装步骤顺序,优化权限和用户切换流程

docs(kami-gateway): 新增 kami-gateway 模块文档及构建脚本说明

- 添加了 kami-gateway 模块的整体介绍及项目结构概述
- 详细描述了基础镜像构建流程和核心组件(Dockerfile.base 与 build-base-image.sh)
- 分析了 Go 依赖管理方式及 Docker 构建优化机制
- 介绍了 CI/CD 集成流程及自动化构建逻辑
- 阐述了性能优化措施,包括中国镜像源配置和极速构建策略
- 提供了常见故障排查指南以提高镜像构建和推送的稳定性
- 补充了安全性设计,如非 root 用户运行和证书管理

chore(docker): 更新 Go 模块代理地址

- 将 GOPROXY 从 https://goproxy.cn 更改为 https://goproxy.io
- 保持其他环境变量配置不变
- 解决国内代理访问速度或稳定性问题
2025-12-17 15:33:59 +08:00

1 line
130 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"knowledge_relations":[{"id":225,"source_id":"2ecaaf95-655f-4d6d-bb65-5b3a221d0e19","target_id":"adc2875e-7302-4520-9bbd-8a5f67213877","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2ecaaf95-655f-4d6d-bb65-5b3a221d0e19 -\u003e adc2875e-7302-4520-9bbd-8a5f67213877","gmt_create":"2025-11-09T23:18:39.259063+08:00","gmt_modified":"2025-11-09T23:18:39.259063+08:00"},{"id":226,"source_id":"2ecaaf95-655f-4d6d-bb65-5b3a221d0e19","target_id":"603cb3a2-940c-4fb4-af92-1455c2e842f3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2ecaaf95-655f-4d6d-bb65-5b3a221d0e19 -\u003e 603cb3a2-940c-4fb4-af92-1455c2e842f3","gmt_create":"2025-11-09T23:18:39.265039+08:00","gmt_modified":"2025-11-09T23:18:39.265039+08:00"},{"id":227,"source_id":"2ecaaf95-655f-4d6d-bb65-5b3a221d0e19","target_id":"3883b336-0b91-405e-8c5d-fe6b5f98462e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2ecaaf95-655f-4d6d-bb65-5b3a221d0e19 -\u003e 3883b336-0b91-405e-8c5d-fe6b5f98462e","gmt_create":"2025-11-09T23:18:39.27175+08:00","gmt_modified":"2025-11-09T23:18:39.27175+08:00"},{"id":228,"source_id":"12203115-71b4-4691-88bf-ab11564b9fe8","target_id":"295c1192-6d0a-4dd0-9d9d-382ac911c205","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 12203115-71b4-4691-88bf-ab11564b9fe8 -\u003e 295c1192-6d0a-4dd0-9d9d-382ac911c205","gmt_create":"2025-11-09T23:18:39.2856+08:00","gmt_modified":"2025-11-09T23:18:39.2856+08:00"},{"id":229,"source_id":"12203115-71b4-4691-88bf-ab11564b9fe8","target_id":"30884903-1b75-4192-845c-61a90fc80d8b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 12203115-71b4-4691-88bf-ab11564b9fe8 -\u003e 30884903-1b75-4192-845c-61a90fc80d8b","gmt_create":"2025-11-09T23:18:39.292281+08:00","gmt_modified":"2025-11-09T23:18:39.292281+08:00"},{"id":230,"source_id":"12203115-71b4-4691-88bf-ab11564b9fe8","target_id":"958d01c4-a4ce-441a-b1e6-464718390859","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 12203115-71b4-4691-88bf-ab11564b9fe8 -\u003e 958d01c4-a4ce-441a-b1e6-464718390859","gmt_create":"2025-11-09T23:18:39.298686+08:00","gmt_modified":"2025-11-09T23:18:39.298686+08:00"},{"id":231,"source_id":"12203115-71b4-4691-88bf-ab11564b9fe8","target_id":"b75ef0b1-14eb-4602-a372-8bc28c154516","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 12203115-71b4-4691-88bf-ab11564b9fe8 -\u003e b75ef0b1-14eb-4602-a372-8bc28c154516","gmt_create":"2025-11-09T23:18:39.303105+08:00","gmt_modified":"2025-11-09T23:18:39.303105+08:00"},{"id":232,"source_id":"0b98aaa0-f8b6-4519-9e33-da448e5d46bc","target_id":"2a4ff51e-641d-4f66-99fd-c5cf3faf8d68","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0b98aaa0-f8b6-4519-9e33-da448e5d46bc -\u003e 2a4ff51e-641d-4f66-99fd-c5cf3faf8d68","gmt_create":"2025-11-09T23:18:39.306924+08:00","gmt_modified":"2025-11-09T23:18:39.306924+08:00"},{"id":233,"source_id":"0b98aaa0-f8b6-4519-9e33-da448e5d46bc","target_id":"192594ea-bb47-4a29-b16c-b6782eafb53e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0b98aaa0-f8b6-4519-9e33-da448e5d46bc -\u003e 192594ea-bb47-4a29-b16c-b6782eafb53e","gmt_create":"2025-11-09T23:18:39.316533+08:00","gmt_modified":"2025-11-09T23:18:39.316533+08:00"},{"id":234,"source_id":"0b98aaa0-f8b6-4519-9e33-da448e5d46bc","target_id":"8525a571-0ae0-4153-9ba5-23d2de726ef4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0b98aaa0-f8b6-4519-9e33-da448e5d46bc -\u003e 8525a571-0ae0-4153-9ba5-23d2de726ef4","gmt_create":"2025-11-09T23:18:39.323598+08:00","gmt_modified":"2025-11-09T23:18:39.323598+08:00"},{"id":235,"source_id":"0b98aaa0-f8b6-4519-9e33-da448e5d46bc","target_id":"b5946ba4-2b1f-431a-b8ea-87a1a62a6dff","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0b98aaa0-f8b6-4519-9e33-da448e5d46bc -\u003e b5946ba4-2b1f-431a-b8ea-87a1a62a6dff","gmt_create":"2025-11-09T23:18:39.326634+08:00","gmt_modified":"2025-11-09T23:18:39.326634+08:00"},{"id":236,"source_id":"0b98aaa0-f8b6-4519-9e33-da448e5d46bc","target_id":"4044ee70-4d92-48cd-9ea5-f437be453797","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0b98aaa0-f8b6-4519-9e33-da448e5d46bc -\u003e 4044ee70-4d92-48cd-9ea5-f437be453797","gmt_create":"2025-11-09T23:18:39.32704+08:00","gmt_modified":"2025-11-09T23:18:39.32704+08:00"},{"id":237,"source_id":"603cb3a2-940c-4fb4-af92-1455c2e842f3","target_id":"8cdcf2ee-6ed7-4ab6-96c8-82c39c3df207","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 603cb3a2-940c-4fb4-af92-1455c2e842f3 -\u003e 8cdcf2ee-6ed7-4ab6-96c8-82c39c3df207","gmt_create":"2025-11-09T23:18:39.328467+08:00","gmt_modified":"2025-11-09T23:18:39.328467+08:00"},{"id":238,"source_id":"603cb3a2-940c-4fb4-af92-1455c2e842f3","target_id":"844ce3c6-c207-4f0f-9749-4a97ffb47912","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 603cb3a2-940c-4fb4-af92-1455c2e842f3 -\u003e 844ce3c6-c207-4f0f-9749-4a97ffb47912","gmt_create":"2025-11-09T23:18:39.329358+08:00","gmt_modified":"2025-11-09T23:18:39.329358+08:00"},{"id":239,"source_id":"603cb3a2-940c-4fb4-af92-1455c2e842f3","target_id":"407e4974-151b-443a-958e-bb4048b3a58b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 603cb3a2-940c-4fb4-af92-1455c2e842f3 -\u003e 407e4974-151b-443a-958e-bb4048b3a58b","gmt_create":"2025-11-09T23:18:39.329733+08:00","gmt_modified":"2025-11-09T23:18:39.329733+08:00"},{"id":240,"source_id":"603cb3a2-940c-4fb4-af92-1455c2e842f3","target_id":"e3d57446-2281-49ee-84bf-50106e329c6e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 603cb3a2-940c-4fb4-af92-1455c2e842f3 -\u003e e3d57446-2281-49ee-84bf-50106e329c6e","gmt_create":"2025-11-09T23:18:39.330074+08:00","gmt_modified":"2025-11-09T23:18:39.330074+08:00"}],"wiki_catalogs":[{"id":"03f420dc-94ba-4438-939d-b3cbb95856eb","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"项目概述","description":"project-overview","prompt":"创建关于docker-registry项目的综合性内容重点介绍其作为容器化基础镜像构建系统的核心作用。解释该项目如何通过alpine-base、kami-gateway和kami-spider-monorepo三个模块为不同技术栈Alpine、Go、Python提供优化的Docker基础镜像。阐述其架构设计理念包括分层继承、构建脚本复用和非root安全运行机制。详细说明项目的主要功能加速镜像构建、统一开发环境、中国镜像源优化、自定义证书集成以及轻量化设计。结合代码库中的实际用例展示各模块之间的关系与协同方式。为初学者提供概念性引导包括Docker基础、构建流程和安全实践为高级用户提供技术细节如环境变量控制、依赖预下载和CI/CD集成。使用项目中真实的镜像名称和标签如alpine-base:latest、kami-gateway-base:latest提供实际使用示例并说明其在微服务架构中的定位与价值。","progress_status":"completed","dependent_files":"alpine-base/README.md,kami-gateway/README.md,kami-spider-monorepo/README.md","gmt_create":"2025-11-09T23:07:27.825653+08:00","gmt_modified":"2025-11-09T23:09:27.674083+08:00","raw_data":"WikiEncrypted:0MI1/XkBoMl0lTbK6t0Cn/+8FdvqrJ62ianMLvZj02elJtBUgH0Ns0veIx1WPtM9wwkxI+/XAqHLxJLlHB8wV64BEQU6fsgKMDP1iJCc20Yj3vryH9o62N7mtzXqaPjik3NnLJEUI5Q1LwKQ5laz6QFH8GBY7IAzRLEZyROHy4YzTF7oiQWO/zUL4hVQW1BRJiC9EwzIzl8I4pvxp+yNbsScgzTEPkrBAvU2ktib91+GF/rAOTsViVXPDi6cR3QTzBhdTlstl80RshnqOQodnUQbF1+CVlj/51m8mKKuwq40Dg9gTyJHLrkFaUrVP2E2GNfbt3oTEXSK4G/BTDpp5a/0hDaK18vJw+tsC8WPPGSsPex9hPUt/rcVsIKt79JY+iSBMCNqy/aSfBOWJYkhxnY5XXosu5pwocOLRm6YQR7ve6MuW4dBZFb8HBolQ0bATVc6uatrdhyWBGcbJsKzMbJOOXAdbtI01S4RJng5Y/TbeJXXEym0Bz6TQ+NfEozVguaI8woKa8ierkE21pp7e6JErDqrqySftnP/5erFKX4U0oSbQumxFb+r03DrsxvGfuvHbc+QFD6RMh4Zd2cQBsmmbXPN826inB4/ipXgGCnsuL462WIPmg0ppgfK/g6+p7dIGGZWMyMeIZPduxXJUDlxD7mALrNxRlYYRgH926PrvpuPmwys6/t/W/29GjC4WEOHvlQnrhctlECi/NBtqU0YLWvcJB1mGfGU/kRy5YeHNjx27tx12YhZqefeK8lIzRz/1K+JsWcfbzhBde3gtPwBLfGHNpxX7kiTIwERk+rQ9/fbXNae7skvWhmZPhiICrqpL4WdhYducVlFjI9FY8CRRsbiv93Z7FSf5OuKomI7o5gRC8nTlnBgWMoJz8XpzkE790ZlclPslj7cjeL2FfaKEkyL47bEipqg3zY0Nb3Ly8dD0UIJVTFY/69hGYLiVAQ4gYnjFe7SgzOtmhjSsD07/yz0TRFaNrBmSKIboZ5IGGRAA3jbgkS3g7lwPyZFEXSXMcjp7C1jDTv0pBJu5NFfkREOUsuTAV4RrA3p1iSzMn0yAxmBU/sMj9ocbUfa8pZnOXi/jYXCAqJgMd3QcPzwpHw6IV3w0A93Ttut5AJuMEpfz74Ekq3oE/ZyJo7TzrcO9p0AMMGSuJqmapra93Ct51Q4XPhcazrhE9M3O2dgL+5CicvYpSXpm2/l4hSwNjH4HcJ4/opJGa97uRbL5b0bO0Pc+KtLYdeQLY9PadL/cCEIBHVUWTS6j7mHKwwh8t82PtbLurg4XLRt+7efo0KuCcT46u78oTDLHAzxGBML3R27fIE1MtPLCJ0VTVHu/ztbxiSG87S0IgpQ/WJwO7QMuIHSglGUiU8IUbreKoHfIOed2dWwEW43BtOlEU/o21VHHOGJd+PpwhLGgD9UsMoaChbEcl9kW04RzWANrRFnaItwLgfU00RUadplv+dRPEG3IrKaQwUrpYbA00X2EOzDtBLPZv7z17VuJXn15S8LdQnj+C8tB/8wHCdg2EyKTGMNh67NtXYYna/y4O9H58RpZ/n6jP1YrIvRs3TVrv6PtUI/LLqSKcsPbC5F0Vs/w/d6M4oI8UL5sOCRiAZFpLhS9EcVtWC2p2YHJaax81qgq20S2STLPRPnOsdHhTPrzZHJyzjvA1xwe/7cGI8U+luU9vfn+Fdpy08ncFzikQprlpFkJLIu2rPmkWETtfLI+4zXrr9SCDK3x5xswcfzD5+kW0064tTFqPF2emoHnXjhzIeH5YYokqZV/sOF8Su9PqecR0nL4UaVMyuQ1cMzSQDY37iuydMNMv5vfGY9CtzHeeiz+NqDtao8qYWR4Je1CCgYrTgKYQVIe0HwW/wgvK0mYK8vwmq3FidBmzklu+OXJEJNtD9Ewy0PDpPGx+l0"},{"id":"07c159d7-3fa1-4dca-a4ea-502f25f5b08c","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"基础镜像构建","description":"kami-gateway-base-image","prompt":"详细阐述kami-gateway基础镜像的构建机制重点解析Dockerfile.base中如何从golang:1.25-alpine镜像出发配置中国镜像源阿里云、设置Asia/Shanghai时区、安装tzdata等必要系统工具并通过RUN指令创建非root用户appuser以提升安全性。说明环境变量GO111MODULE=on和GOPROXY=https://goproxy.cn,direct如何加速Go模块下载。深入分析build-base-image.sh脚本如何调用docker build命令构建镜像并通过--tag生成本地标签kami-gateway-base:latest及版本化标签。解释脚本中如何根据DOCKER_REGISTRY环境变量决定是否推送至私有仓库git.oceanpay.cc/danial并展示构建完成后镜像大小的输出逻辑。结合实际代码片段说明多阶段配置与安全加固的最佳实践。","parent_id":"bed2c9b4-de63-4b03-8187-d62744475754","progress_status":"completed","dependent_files":"kami-gateway/Dockerfile.base,kami-gateway/build-base-image.sh","gmt_create":"2025-11-09T23:07:52.901422+08:00","gmt_modified":"2025-11-09T23:11:27.965007+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjoraUD6awSCIzxelIgskRdc7QCSaUDDeVcymrIahhy3dCAttLX3mc433jwlyvYeX+ZkvGriiz6WsHD2sqZaAVqVXpJ9g07A0Pahb3Cbn7IJo8/BSTbArMK18RT5B9pjSo88/bd80tucTkSawTDIhMRv88Ykl+xjLFSJn+aY9Nid2hS9FiJPpK7JzSlsH9n1FHji4QA4dh5bugncK8qIj4xVhBwWdN/1+KRj/eHYdPF4puXO/nv7pkgALSH8DicuNMmr5BaHsHLUWbPhJ0qxZf4EsnyEjZXO7qNyHC2Hvpe3QWgI+cx7oblVBiT1ro7v1kI3hitQA/XdPkaN1kn3tRhwt5kBJmmHk1W9EwisvS4oo6edRk8lSTwNj/nzgLAX9sKuqsdNZrwI6ewnwnIMleFFiD5k+WCB7zAqgZko6cdo6rKZzE6EdJtf46M/1NonX2yrarl9z9bBTLgdgyW7Fd32bmU880xMwVthP8bLqvAIB57ZmwFMYflf0Jf00jUnNR3ixqoj+CHdCBeUwNgGJtb2luWuu3QaPYt8OYkc7PZnPUav65R+PmqmSf6o37xW7TeiMHJSsGoowZwVDFF4j/MZ9jDBak3tajTwlWoF4MWskOdoIusP7jpp0h6vo8/xWxp3YCmBYWtAnDT5edw4EkC0qfv6zkPn6iREKfVEsA+UojMj8RJmj/+UgdhE7FPl6Xxm+C6/jn2BIoBUJv2jeRWcapqwK375fktEQOtjccAx0MzOzN2zbxirAoqg/l2MecanPUdDP1sRgITh8TwVAsxRRCFw4CGzYeElqItr2MkeRYVcC9S+92M6X1gdjHA0tzGbFEYB+rulrMXpDCR8/kuhbnt8USfyEw3G3eF2+PxH9B/tZcHcJGxmZc0yf2lGSOqGZGKRM1i/xVfiKQS1EANIQp3+nt+EofdQ2r4jiVKWrK11+/z2eVSsnaBA8JFTKimLZ1OoTl987Kg4WaLXDYUTrCyl1GwROlr6nf9A4bL4e34INo4YaJ1Bgj0mjtt6kyi/Bt9Xg6wAfov5GaM3DyH+Ryes/eDl0T/AOy7ER3pk669rwcDbmgCikSrE3wY4AV/upSpDKf2lwX3A/NtkngLigZ8l3GmG9HeMxgVAOnv+XatZH8hdWERAmbUxrbebEKqZuLtW6kb+0SqgngGmVlIKvjFIoiN11acTd9kt2Z91xx1VS+SszkksICSLrYIXvRqmVkAt9uHJAeozOdzo+UHWvsJaoZBqhJq9iTKse/ivxn1a3QhWxdlgVU9BQLrdBa7Sf54hj6jDbayAkNWPFzerL2XH7bQhzmcvrVTjxK3ZfcgJIuB/cLclePfXhVlB+ETvdcGi2Yu/F3BgZHKSHpVHcy3Ul1HGAw+hrjt5a0hpdFKl+fxWSei/sIia0Im70/hwDPzkkgcTAAOwtt082GRadnnWtYt8ioxRUNwlxOkUs0vOk3M8IV1LerNMQmEzPGHiAu46lsirQHak32R5GM2wW2cjSYanahK2XbnadMHAfFiJE7gBRKUiU5Goy0XEFiPIWbf+q7+StDP5O7cZiGCROT+s5rs17cmXb4YLgd7tCA9/JtCwek/PQGd7nL7wNVUlwBD7BqIjGbRWBgbB2Ezo=","layer_level":1},{"id":"6160423e-0318-494a-afdf-c9f71305913d","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"功能特性","description":"kami-spider-features","prompt":"创建关于kami-spider-monorepo模块功能特性的全面内容重点阐述其作为Python爬虫专用基础镜像的核心价值。详细说明该镜像如何集成Python 3.13运行时、UV包管理器以及预装Chromium浏览器的Playwright自动化框架支持复杂动态页面抓取。解释镜像中配置的清华源加速机制和自定义证书支持提升国内网络环境下依赖安装效率。描述非root用户appuser的安全运行策略及其对生产环境的积极影响。结合实际应用场景展示该镜像在处理JavaScript渲染、反爬绕过、高并发请求等方面的优势。提供与其他通用Python镜像的对比分析突出其专为爬虫优化的设计理念。","parent_id":"3e5a6a0d-ff7f-445f-9d0a-2fe8bf1feb37","progress_status":"completed","dependent_files":"kami-spider-monorepo/Dockerfile.base,kami-spider-monorepo/README.md","gmt_create":"2025-11-09T23:07:53.823899+08:00","gmt_modified":"2025-11-09T23:13:38.929392+08:00","raw_data":"WikiEncrypted:ASPW4qx/mEg7V7YbLjHCJWkJHOqX/lcen1IAor6p/Eyr2r/UZFv0JkPz0JCSgDS5ZpbZ0BEqfhFgxyPhba6yw4yG8/DPR7XSoopfan2gDE3meZoIL4y/Wc+sPWQ8/1kMSaLfOT5nCejS1+ChvQ7wmvJjveLzs40wXGIe0A+UCGsZ/cMcCbEyLLZPcaWy9W13rj062YqDMcaKllEiWPbHHI6J9BA3M1SIms/JAOju4tZT1TdNq3Jal5TrYX23UBtYLskxGDuppnwFWrO4/yMD/mO73+KyPd3rJnT3cCAu3oiDNq82LHKHNZoR9LsHmg4JuWFHp0iUm3ffoe23wWRgAPnjI8Iz5Du9Uh5wPmTRl7vNiw3M5WlqArZB5HxfIfd/bgWnZ/h87AUzK+9mgSqOXI0hSW/QR/VqAJ3fXKvwOWsvygBG2Y2JdMZaWlEKkNfsMfLHkwvgEPHj3Tso1xZICO8TYJvbjBD99ogpUYS6zPBeZ8ay/l2NLxlTW6d27hJQlbaXIhe9dEvVOx2/8OLoSigQ7A7kWkoJ7fN8g+Gb8tuLYD/Sln897mNzCOqUyfsGrbqM1FIQ5u+J+7kIEkIFUAaqMGBp+TYIvEyU9u57FMFxcTRnpXs7itmCfkXjs517A7uskpIOBDaBMe0LjsjDIbz4Gl+GX4+ASIuS7Ix7gH1bnvXZDkjBeAtOFNKkafCuNe+JTHcilP5X2YFtip5A+UhzLfAyvXBZE9YBA6lh4ezV0tgDInfnOMZTz9Lb5TlxbdZLYmQ2iDXLTCBhVaLkiounzPCHAbPCJOPvjNEj6B8EO+8qzhp7Ct9JOE0wfT26E0QzHs0jKw6IB82BlJCkRb3Ble/wv0TmBT+HonhL4IoP/u5qIKEzeb+h+bKyvtXxcZteBUjZArcydLhH3TmmYjzz21ZXzSeK8Ma0bbnAUGLj7FG6UTTuOzIM/eGPk9nijiJhTt+sRoPIvy9gQ7E10IBLPO7KeE7EqBbahjPH6kArgpRsp4XzxunCkxbjfC/Jd+2T5V5rD/eTSvL+mlLCZhGVAM/PIA/jq1N3Z1aPzKXOc62cQQSvbsLFyVlbxWtkMa3pMHpJm8Brm6b4l3XY4Z8FsGdaaGPMQdMFaDk1XsL99dhFeKtg2ACaF9IZP0EX17z3WdNslzTS3uujtRAdrUGGCyhviOS9zXMA2CNk5pBs5k/yQ1cZ7EpLTnEg3YmYS2LcfiyggpeNPx10MtGqWxvkMfy3hl/wvmKB7PKOX0F+Ot5EjK1nRZ57op3udv+7TZ+dxgAIwKdqj+7TIOC7aVExF4mdx4IcWZ+YpbQhhOWQWbcaS0z13KmuP0hjy9wmKqYltwitm65QRBAqXYCNI7NIryacuGQD2OknOdKbwOmnj2qlp3SZxP3H4oC0pzCy","layer_level":1},{"id":"78097928-b28e-4f2f-9fef-370b9329d92a","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"alpine-base 模块","description":"alpine-base-module","prompt":"创建关于alpine-base模块的综合性内容重点介绍其作为通用Alpine基础镜像的核心作用。解释该模块如何为上层镜像提供轻量、安全、网络优化的Linux运行时环境。详细阐述其架构设计基于alpine:latest的分层继承机制、中国镜像源阿里云配置、Asia/Shanghai时区设置、非root用户appuserUID 1001创建以及自定义证书集成。说明预装工具集curl、wget、git、bash等对开发效率的提升作用。结合Dockerfile.base中的具体指令和build-base-image.sh脚本逻辑展示镜像构建流程。为初学者提供本地构建与推送的完整示例包括环境变量DOCKER_REGISTRY的使用并演示在应用Dockerfile中如何正确使用该基础镜像FROM、COPY --chown、USER指令。为高级用户提供性能优化建议如镜像缓存策略、安全加固实践和CI/CD集成方案。引用实际镜像标签alpine-base:latest说明其在微服务架构中的基础支撑地位。","parent_id":"03f420dc-94ba-4438-939d-b3cbb95856eb","progress_status":"completed","dependent_files":"alpine-base/README.md,alpine-base/Dockerfile.base,alpine-base/build-base-image.sh","gmt_create":"2025-11-09T23:07:56.008576+08:00","gmt_modified":"2025-11-09T23:11:54.505487+08:00","raw_data":"WikiEncrypted:PUwbnKv+OblcItyhVdInwlSBDDVBKSI92baM7SJ9HBnHTqB3kWLd1aBN4kZ0blEixVWt0Rg9Ovzq08tOOpHaInm5xMD7NOC492BL44IwRLBRbWO/vwkeqEhMRXHLUzysYm7sB7Oe7MvxloFQdM2eLAP7mJz6dgVmkgKOsjwTFAqysiPC7ghcmD92QFbC1Czai+2doCCbIUkF1tXloNo5ZVQPJxpLeOXhciOZhHYaQk833VrCTiND4JrJNxZ3E67lngzoD0/ZsKczw+sm7aK+FZmf0Uu0kqxfrb4vkK2M/C0In976+NDLo0Uq8R75uUzs+BChA9dZYgSalv3h4swpQI0kdAct5onxKr/OTwdKzwPxxSL7Psg/TxEb5I+jShQ9DtslqnPsbdZWu8LeW7QW2Q4Na7vJzSq4K5tgWLYmtlivlA0Zb5PPTZJ0cbOMz3suwc6+fV6WyWCJBfpeyS9FVLfxajCFlrcgj+0x+NYyuLMUnnHNvJbIx08QUyYZypIqlGMPeQ74DzqvQDhBv500CqoRvUXzkcsgxDDy/gZ0zS8HrfYI0D0NrpNzMAMcQgGCdvq7k+POQg5gPHvxCHlrGI6nWBKL/7+O/P+IYPygNGBRRyR6Y4hBXsbbyqDL/s5t1lIHFBpCrPJs5wQLsG7MPeRw9z+qNsOkG3kw/tVf40YGo6MjeqdSvwQBKh5WvTo7JQfmHrCnUSqs66yItAXmx+OZwXBxU7Cc0Ay44QfaW1kdQJAyv6QXInOlOLhaa6TLt/Ia8E259O+EQQrFhDjhyxjnbW0J4T//yQdYljwiXg8KvJRe8j4IAj0VyXuHubK9592ZMo+DJTEgC1AjgQuCIXQQYhEZ+wRhsqHI5nALI5YABIpivhYh6F2TQWUwWUZ0fAcAAKgA8bkrbWokxLcGyI3etyXoEH8+8Wqj0K2PYcreZ7QcszH6tK2TbWss7JEezk7iKfXTeeWPelv2V7KcduoKZ/Y2dNHXBNAGCeSQsxOxs736Ncn537rja+eGNfqqRj14hA/NErPLt7I/tmrUbQSi5bTsY0rvPqyKobK5zYgB23U24V32rrsr91PFgqfjh+88jeo/7UuwjXixiGWx3vFF9SK0+cn6ybhz9QfCef0/YOlhTDuKOrh8GVKPpaCe24A4jF3LGi6AwdPdPeO4221ZuMiV+V6RdEqS8GkFk+fHwFraZChH5aaVQXneaDSiBTcRC8ye2bLu58jvoi69rv4jgee0PyJ0l9Gr2xr2CmmoFVzmfFYSJGYvwYar6vj7RH71snf89BSQJEJrcnYGRlU56uOYjAH/EAELjdog0Pc1Ha0TAJl83VJo0nPL6QfLjCKtV3MlNXKwspTS4S8zL0INLW6LGjbLqrQezowlVt0G8lqog7Epx/4c+ZtIAYnTswUe0yzKdqQ2KDL5JTYILVyr5ysCgoJJ82xcWmvYsnfLUnq/2zwYITeChecaKxqCErAkaTuklryTjoWFKA6tSbzDOUlDeWGx2JNgAemC6JRGINxyvfHxgHISXHAksqdjOJHcSIj25MUxFe5Y5Aa3g7RuDdGIuN0biJIdibPTSMO/Gzu7FUk9v7kS9Guz8Fv68Ybp/haJO03uYbfnQkwOhtH4YKRcIrBULcMekfW/U3xQ/xaqaimB/d03E6UPQwhM6lurdgURgEizvk2IDF2xhS8MRlluz1fTKi7ST5g8sdrE+kDp8hWcwJdDbpnHPPJBgzRBwL6d1ezDfeuGLVNUexb1IPtBhH82+o9wa7qQNjHhaIdw3HWP/tznnmcrBGxPwLbdZffXjP1jZ6wutCJlBpJIiM1NJypGFgfaBl2aW0anw4spVB4845xxjc/bkWs/xxi+CmtCEuSj3pletwymUe6zgi33rhfuFeCK9tgGP7g=","layer_level":1},{"id":"f53cebe0-d1f4-4508-a612-12121007a602","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"基础镜像构建","description":"kami-gateway-base-image","prompt":"详细说明kami-gateway模块中Dockerfile.base的构建逻辑重点描述如何基于alpine-base创建轻量级Go 1.25编译环境。解释多阶段构建策略如何分离构建依赖与运行时环境显著减小最终镜像体积。涵盖goproxy.cn代理配置机制及其在中国网络环境下对依赖下载速度的优化效果。说明build-base-image.sh脚本如何通过DOCKER_REGISTRY和VERSION环境变量实现动态镜像标签生成与私有仓库推送。提供完整的构建命令示例并解析输出日志中的关键信息如镜像ID、大小变化等。结合非root用户appuser的安全配置阐述容器运行时权限最小化原则的实际应用。为初学者提供本地测试流程指导为高级用户展示如何扩展Dockerfile以集成自定义工具链。","parent_id":"3cd6b111-cd55-4414-9a4b-23c4ecdd4953","progress_status":"completed","dependent_files":"kami-gateway/Dockerfile.base,kami-gateway/build-base-image.sh","gmt_create":"2025-11-09T23:08:21.22698+08:00","gmt_modified":"2025-11-09T23:17:28.961825+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjoraUD6awSCIzxelIgskRdc7QCSaUDDeVcymrIahhy3dCAttLX3mc433jwlyvYeX+ZkvGriiz6WsHD2sqZaAVqVXpJ9g07A0Pahb3Cbn7IJo8/BSTbArMK18RT5B9pjSo88/bd80tucTkSawTDIhMRv88Ykl+xjLFSJn+aY9Nid2hS9FiJPpK7JzSlsH9n1FHmRhI39tXrTj0BQDr1uBjr/g+FGva/FKhZToTllXnoSrYhbTBN41UxF9YtIZnAkE86pilx3XIpFTbpXQO++TSkvB0A7F7oiQT0OMF1zcWUiFxtablAHJcdqwHS6h/YIOYlXPtqvIgbZV/ZTyYZxvqEeB8hg5v5YfmEdoPeXPfD3+qqBP2zbT21QmbNzWYqaNhAFJw9MEbToDiOZ4LL0a8h6b+FnWXsuk1/HWFs9aoCUbb7wxIh4bER8YoD+1o6lVHObxCHwUIR3/8EN8CHmEQkgBv/IzqQvXMkEQMEFGXgd3HM3mjgbPFcwjHku7/O2uTPV5hM+af7I89NuZnx6EZbJr9Ktw9P3AI1dlHUj9DhywUe0+S3gG0EPmLGNQr/xWQN57FAF56CMAqJeK4dNPRMZCx8XWqANVU14f8tUoOCRvDqsEk7hSGwSJedg7tPqpHqx+gLjg6G8TJCkONAoeA2OV8Rc34TKy1y+44uQx4Q/0+jKWVJNplWijigAXmr7pbYh/r0oNj+u3viY6j2SielapR5cfPawczxGEq2LidGpmKp5mnJW8xR3/6hpHQBicUlHqIX2lF4jx/WiHAs2+QlS0p/vK5B7nM2LbQWrE1GEG3WXArzEH+cq+DfcIVOvAq4pbcauP9OhGf1L1NHb5NHUukVPYkmbOGGp5zFLMjy4RErYNV1vc0zyl8iuRe9R9sJHT/KL/3VCg6rFscba8/xM8W07yS5pX6BkP4dlz11DVTiFSms8xpAX64e1jxzvc4hixOweT6cIowlSsCyH6n5E+855oG4uQJ1h7CbljDXZQKQsM6oOLeXFPU7GURtsL8Q9Vitzd5ZuOwqTVhIgoT6N+bi9Ki9Fgc4o8Imk6NdvIgOSN9j4CZc71tLs7JmXmqQ5vRb2HtMwrgTpe0ldEgUAisoSswgDkZ7dcFfICJVE5tR194RB1He2mYDeMYaJLkyv4pK0EH/SngW8p4H2g+5micl2KELjvTTBoW6mMPU5TK3iTsS4fs+6YL++g73s9MCcO9dvYEGg2si5+9ZMuS8NdLoMGtLwMLyOF3LSQ6fGR5NEfY30y/0GHKQeUMV0HCUJgK8uukwpvYGcr0MXsm5/qdSJgJm11ciLw8uC/zWrXE6XVbTggr/WiFrD42JU8qzmsr5WihIuGirnBmWH9/cUfJQimX9f+LWPIS1TczqddoV7++rbQKOqVi1+Csi13T4co3+pSdDu41InmafFEs6VS+uBN+NYloiVIcaPvY0DQKFn+P1kTLF5+Hoqe0YmPCNVduVOGbq3bcKuCHJzIx10wXhTT3oyMpzg295telW4DMhZLxLqA6wg1/PgoZB976dGxdWkvD0SK91QhMdn0uZ0=","layer_level":2},{"id":"87858ac0-b4c3-45d6-b46e-5b9aa92027dc","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"快速开始","description":"getting-started","prompt":"编写一份面向新手的快速入门指南,指导用户如何在本地环境中构建和使用本项目提供的基础镜像。详细说明执行构建脚本(./build-base-image.sh的步骤包括如何进入各模块目录并运行构建命令。解释关键环境变量如DOCKER_REGISTRY、USE_PROXY、VERSION的作用及设置方法并提供具体示例如不带参数构建、使用代理构建、推送到私有镜像仓库等场景。结合alpine-base、kami-gateway和kami-spider-monorepo的实际用例展示构建成功后的镜像标签如alpine-base:latest、kami-gateway-base:latest。提供在应用Dockerfile中使用这些基础镜像的代码示例FROM指令并强调非root用户运行USER appuser的最佳实践。涵盖构建过程中可能遇到的常见问题如网络超时、权限错误并提供解决方案。确保内容简洁明了使开发者能够在5分钟内完成首次构建并理解基本工作流。","order":1,"progress_status":"completed","dependent_files":"alpine-base/build-base-image.sh,kami-gateway/build-base-image.sh,kami-spider-monorepo/build-base-image.sh","gmt_create":"2025-11-09T23:07:27.827352+08:00","gmt_modified":"2025-11-09T23:09:18.775219+08:00","raw_data":"WikiEncrypted:qfgbutC7oyxR6nMxrwk1ODnNMBEQ3/sG78fQT1yXWju83LC7H/jAM8CEAvWT8huE5OClmQiIfNYNxHQ9s7RRSz3BPo0TFNlVbmInM5lzUSEEf+YI5BGx2KGN3d+G0LQiikAd/kU5aIxOEOguyg/vW8SkM+fOFCqFOxf8LCU3g7rZYUFF2aPDGO5G55zdtkToqcphhDSRmS1nMpftopCL2t5+g0kKGcliYFzvMdsLTTdKtQbSd+z4ihO59L9IIbI3dEyyPXPXZcU+FsJIGHD0GVErBITS9+r1yNARs9u8Qt6m6nyfIo9WAIpfQjqawIJAwFIt8x5pr8Cnk8eeJ+TDI48ARvDFhZz0404/Qi5Es5iwEV0gEUvmtOqeSZ5jQs6Ts67BcKsQWD09KRy6hR2Rzkf5tnxKnKZ/oNt9Z4vZKDNi9HHxEKDw3TB7voZuErlgm9DWx0Jd4kdsPTKsBpk3ebLD0Wlhebn9yGxGYNgnb6J1Nl7tKRnBOC97m00LIqKnH6530m6yoJ/xci6RGgWsahBWr0W2+9nt1GViilFsu7agurVWNgGyS7xM8xzY0nUTBA8QpTkilP0vqG2/46Osk2zjP98ZI5uxTEfnhCJI5oOnJybG3zyPOgquRfWZs9rhAysdajd/gZOdtx46cU5daVqkEnpXoR96fv9pkxG6VTp41XTD8HFts/nV8K7hL703SEVpXW2B3YIm7Q8ixmA4khLDxf/ogYEmK4WLloCmRzbLTbIsTpxcY8SmEZG0OiRPkxHPErLOPmoM33h0oiXepG4b4hmc73a0OLga7MZ169yGLzLzVhNuXP5ddq55KEzfJjyk5te9C6rALx4xGOc51ESjTWX+8GOoV4U53a9GfMkDfbes6ksHT1t6eCMzS3WIcSk5Txv597YeOhFpxIzsjOTXvZC1Mm05NkRnVPxMvNEodgjb9Pl9cWleHXLrQsUR1ssXP4Trd7rwMtHg+GgCyn9Ft4RqKBoGm5apag3TSuWWbMnV6yqFV66HyFw9WIH+iHJHJV3nS1/gM9SUCfRZETYlgbPqdmtrBThbzZyViB7Jp64MOZyrn4knf6XEcQkANnpvWSOhGANoiQylfSZ/i9W+xB5ZsJZUHJ1mzV8hru49s9MDZ+4+9T04Pd41JM9FnNY2Ce1tq518im/AiBB1WVheYjGa3kzR7urmMpXvkY1LpLyQ5x7E+hilp3VWB6IbAyQwwurKT6QnTJTe8SAjOQJLFBmZrduNMnL9GfTC2sou08khrs4AJu8BYgHGZeb21CIYKw+5MMcuquaTrW42DOKL4+E57khQE99OO32pedD1+vZ2QM6yAySIXZMjCUsd5XtVE42vdeCfI3upRyfmyc2EAwKabgiXJCI/JjXPSv0E813kXqWU4jjPRksSnTGra0DJmgP6OJa7HB5fuA2oFXkGlEw19ez8H99mAsGBSyVtFJJmp9bWQuGYkjyuQn00kVg0BIfSn6q7GA9MkelNpD0mmZYtdY+d1UCKI7kmIaQiC5cN7AHEUS4FFrE2067o6bKN/S4ztEDpSwHKhI+BpsS+jSo/2riPV+lt42QZhMiczrNAHzlMiQZKl2ftPwXoT4sz/5IAlOJ+hfsNrK/GBlkMxg32F1Vnbqgfz4zadBXejUTXHeq7tZ0Fct/kcBUUYuRublrSb/tdQ0VwUdcTje/qdkHcVWH3ZlqzCHVyljSObHji1q7kBk+uIBgI2Tv5Wwl3lBrOAY+8IQRFN5N+PxdbScvkr7HDKPo/U34UvApKanzHN466s9BKgTey/WnV"},{"id":"c24099c1-6bfb-40ce-9315-6fbc1e8741d7","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"Go依赖管理","description":"kami-gateway-go-dependency","prompt":"深入解析kami-gateway模块的Go依赖管理体系。基于go.mod文件内容说明项目如何声明核心依赖如beego/v2、sonic、opentelemetry等并分析间接依赖的管理方式。重点描述Dockerfile.base中COPY go.mod go.sum ./与RUN go mod download \u0026\u0026 go mod verify指令的作用如何利用Docker构建缓存提前下载并验证所有模块从而显著提升后续应用构建效率。解释预下载依赖在CI/CD中的价值避免每次构建重复拉取。结合go.mod中的toolchain声明go1.24.6)说明版本一致性保障机制,并提供依赖更新与安全审计的最佳实践建议。","parent_id":"bed2c9b4-de63-4b03-8187-d62744475754","order":1,"progress_status":"completed","dependent_files":"kami-gateway/go.mod,kami-gateway/Dockerfile.base","gmt_create":"2025-11-09T23:07:52.902882+08:00","gmt_modified":"2025-11-09T23:13:09.422393+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjnBWn8/DtoCGBoLIySQVnVINWOZuIxGmvr+YbeDwplhKzp1AVCWLiNFA6raPhrZohrNjRtvrkFPbd7Y0tTmn8XeDR5hOzGXMHWUVJl1QDhoZ55dDbnO7EtqlCtgTHDsNvnGwC0zDcP649C0Bcu+SVYZ6Uwo2ysQE99QBJLHazgyTs2H1qNJRwOt16or/r5bGGAGHjO3kvKuhO4s/ME3NBEtCwWj3sQkbx1aCeA3rrbtTdxR1U9zteSPjfaKChkAzEyHjseUB56E919Y2qPplNy711BDYitFstUVtlWT2nJdYgGv8EefpRfr8QAVLdA5o2J2fUyLFhGtARwKUxLiQ9+cgTrhQCnZhTW+cJheZUnycxLxuC1b03fmcB8oktjkBwRpbNOWmhxbPZoumsoS4Cxp96BaE3Zd8YoiV12cXUd/rEIaR5azftrNe1gBr3mstcqGKB6v4bWU5DbxaLABBxuUX+TFe1ZPVD+xX1gvKTkNpIZJuS8LsUEbnOaobtvh++4xqwF2QMg1LofetQ4dNrnqCOJ0GKgryR3ISKK3AJATdF8iosjiMxL5R9ZTSlajttzh/R7Ik+m+ByjT/D6CJ++sOrP/muC+y1RLeC9HR2BEhpyezl3aaKkHDiR2jKHsUuNuOnCSeiykogut3kuDZ+ItLYyOj1bC1mZScJwE76GOQg7iDac3wB6yC2gq7rpW5RBGmgpHr7kMOmhisVNE1qJZ7kV5wfxxuxoLbh8a6QVj+J2OKnd4/qfbGwPnGaOCFT2Z9R04SuYLsxh31QRZ8PidxjQXneliQcwEVKTaqIUBRWb6WRGIxeTUcpjHOVYF+a+9d7NNvTPPym8jXzFpwj7JyVVpjK+mmB5CtUAFSUf8GmCHMchPCV1YZZ2KlpHMpkkaNVk6clFJ9t+8WqrQRipY3ysx8LfF9U0NSwyXGEUxwSFYuf6pyzF1nRamn+5TOf8rBGlmPzGeWec7ba951izbtIuLQ1EIWWuX6I2dbvUBnMhCYMkyxk5k09tyMj5C1yjBA4miMWRjo+HBlW/i5jfQ4vVV3zPU5mlp5HA8OEtndNf+9ai04z/NRPnSMfgoRZ4128+FgJ9hblDNBXw9hcnnJ8mafavlV+m1OGBlJRwHdOzTsKXO0e5IQK3EWWEn639hmE5X9itzVRsg9yQAj58Ivst+Gyp7jkCdzQVMeILMd33bp4fRXtXefVBfRGImhyfdzRsgA8eGgmSq0VzZt0fSY+pgbDhYzV0GbIfsQSPJksijUMokhAFyjpj0GqU5BkVU9z6nmsSlabj82m5aBJegmTwcuWwfijXUg9CeKcTkzp9nkGGx9DUVB+F8o1USS7Q==","layer_level":1},{"id":"2fd9ad61-bf0f-4453-b139-5c069562d31d","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"构建与使用","description":"kami-spider-build-usage","prompt":"开发详细的构建与使用指南指导开发者如何本地构建和部署kami-spider-base镜像。逐步说明执行./build-base-image.sh脚本的前置条件、推荐环境及常见问题排查方法。详细解释脚本内部逻辑如何读取DOCKER_REGISTRY、VERSION、USE_PROXY等环境变量动态生成Docker构建参数。演示如何将构建后的镜像推送到私有Registry如git.oceanpay.cc/danial并提供完整的命令示例。说明如何在实际爬虫项目的Dockerfile中通过FROM指令引用此基础镜像实现快速环境搭建。包含成功构建后的输出解析特别是镜像大小信息的解读。","parent_id":"3e5a6a0d-ff7f-445f-9d0a-2fe8bf1feb37","order":1,"progress_status":"completed","dependent_files":"kami-spider-monorepo/build-base-image.sh,kami-spider-monorepo/Dockerfile.base","gmt_create":"2025-11-09T23:07:53.825039+08:00","gmt_modified":"2025-11-09T23:12:40.584346+08:00","raw_data":"WikiEncrypted:ASPW4qx/mEg7V7YbLjHCJaase6SWJf8POEQo+2KlK7RLQfu4SUoBzx3LBQ3guv4YfBxmo+GbJwYhf90f9DoHdoYnO8lBLiai4JEfBL5iQleF4HRXvJ/6zEEKTLOxylsK3g6WmMleSYAtnxfYBuNjdOAAusq91qDeqN5fwtqqN7JUsHCWB7/yMLBlRc1bOZhB99s2i71b9gaWBevRVZIUyPo9VoriY6uLobBkxLACgO3YbezF1Obq56cImdx+Pqm9CFxen17tWQvWtHMZ8Y6D/QhRUuGgzJuwJPE/lsyfRt7JPErweR5/SL3Cx1Q/lFln7ecL22DgFRkia5EkFjop5PYmtAJcOawTpXNAao9CcOwDGx3hldtf2ER+c4rgtKCNW57yeann+sct02PwZmrV+3litWE8o/Gvy1oRLTEfRRV9fGNeVQONvOuxD1/aYlXx5clvsArjjhkC+M2VcpXFlyF1wRbO77GeekjHfsJs/39sK9+ImLAxmoiIXZ+sP9qWYZUEgqb4Y/pW0v/i3mx3qr+W5tyoB76m52zlylSoYnO752uNbpxcdsxZINqQ7XZH9NU4WJ4YFLi8k9Fo37a1BChwKmGYUrVLSizm2vBYMHdZJy3SUzOYdLPRFU2IVMesHcT3NqbsHNJRlkaJ0M5ZBJPUUAsgUpj7ZfejTGLhbnvoDSn4TQ26OtfIlPiNxYkK2MA27zhgw+d7Sj8gp0TyD/WFKTN72T6/Nmv9iqcDoscvAreelp7HoGp4wvyPlVri8bvadAkzEJkm6bZePKH9IlP6zROzfkdQWhKi3kTsVwqSy0tVqIze+bgpQ5J/J7jutb7rXlmDzyfQz9c7My5Z5laXxtV0h8aMW7TgZUYYK6wdaP5rjim24Z6sjVhGFyUWs6+AxwRYNcPRN754GJKm4Z9pVulu5HKSiKGLxFvFtgQhxM/6W7AkZDn+elY7lvJxcyZ9Dp9f72WpN6VbXVQwdaFPPOu9xqpxejfsd9KZlr9DYXlGP1qvz1h8KW6IVGKr6Ox0TvER/Jda3ZLhp/qXwooeDGQv6zlJZn7JjFz/YnE0Nod/sgywQxgIshxFyzDFX+FDTr8PHL9TQLB7ci86c+cMncdyXVAksRbbZdru9gGiNacTi2iGcikCP2L7KmC4xYlUCLdIebhDXU+gfqt7ztuLl6u1UTlKHf09f06FK0M0fAvuMrp7ZxwM4wABh3XT799AECuWKjAG0qrWeKjDgLUNQF096F0zNuWrg4mWgzxY10B1TU//nRnOYCzIjAwT9N5p2pVAtt5Z6Er9QhVXCyGqdgkkgz2oQ1RDkJH9NCWHnI38RHNN1Cv6i5fu+YB1q3quES5TvNyoKz94VCAeV8q4GQKpaPVkw8000VDOAvM=","layer_level":1},{"id":"3cd6b111-cd55-4414-9a4b-23c4ecdd4953","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"kami-gateway 模块","description":"kami-gateway-module","prompt":"开发关于kami-gateway模块的详细内容重点描述其作为Go语言网关服务基础镜像的实现细节。深入解析Dockerfile.base如何基于alpine-base构建Go 1.25编译环境包括goproxy.cn代理配置、go mod依赖预下载机制及其对构建速度的显著提升10-30秒应用构建。说明build-base-image.sh脚本如何通过环境变量DOCKER_REGISTRY、VERSION控制镜像标签与推送流程。结合go.mod文件阐述依赖管理的最佳实践。详细介绍Dockerfile.improved中多阶段构建策略如何优化最终镜像体积。提供从源码到镜像的完整构建流程示例包括基础镜像构建和应用镜像构建两个阶段。解释非root用户运行的安全机制和环境变量配置方式。针对高级用户说明其与Drone CI的集成逻辑包括变更检测、条件构建和资源优化策略。使用kami-gateway-base:latest标签作为核心示例展示其在API网关微服务中的实际应用价值。","parent_id":"03f420dc-94ba-4438-939d-b3cbb95856eb","order":1,"progress_status":"completed","dependent_files":"kami-gateway/README.md,kami-gateway/Dockerfile.base,kami-gateway/build-base-image.sh,kami-gateway/go.mod","gmt_create":"2025-11-09T23:07:56.010266+08:00","gmt_modified":"2025-11-09T23:14:06.580157+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjsS3+J3juI6CT146KDRQuHCEzadbEbF+X9BWt2fiLZ4lKABFILeTWU3jK6x1YwItLgstJDP0TC1lMvIDX3dO+JHaH3zI/JVstgmQE99utx5SrRwQ/Jc4z7w7N8/QQmTQcRez/2ZkSyw7HrBacme73Fx+/avbyXnyToy5bF7K9FpPRp16KAVovDjWR5K5moMu5EbgfGSW4ZC+Kxdko/gqgjXTxCNU5DuhS3ENScsVTKXo3gsK/ZF8QTSVdp/bgTG/lQnzm25dP16f/e8CwWgkGSmXIvDzaoBDwprIRPxbZYk9Q52uqW1iXE8SBrc7Hdg/a7IH5DNKBU2Rg/+H6MOt7bCWLI3gUjs2rLHb4cBFVIDJ8bCG+JQftDYFUuvHm6PcpRXix/uP+XpfI+IDJelJ8a3M26JwOcOgad8FWaPeFDmdw3Zuj1rkisx//9XPQe71e4hnFhKOOe1hAEMkJed0c17wtAZ3RNrJl/xXvpf/J8NFKTFupr9xWxA7dERBEAQPL96Npc4tknL9h8ETt9MVPgbAvLRf5tShqOnGMQAeLel4/BHSvofAAfzUiTOMZj3ODhDcTN2AQsH6PBb9qzmBDh+gBMSyWQ8VOunZmAmL03Zl81ZWqTvaBL3wNwAV5cDuZBOKKDORnFspuciyRfTwignDWQ1j5YywwedSbYJWHjBuoEZAODxE6/9GOAgZmubGN51FnhAr3mRAOUxWy7XLTQ2+ezlB5hl7a7r7t3ACVnOx8AtFEgJn3bNOatL11UggYa1n0saXr6sXY6tbbCUFEwB00ZTIwGSmQpnh1fIp/PJBCqr6l1xVXyxDRVV+NPee1nWla6DykHJrnbkHTKXebSFsL738wR0k3m89/NbHr1+jSzJGx0w7XgTm0dxyaPelO68PQXbZZPGbB8/isfEsFvEcufvN6EEGpsCPvTiiR1+zfEvjjZEUpzn6V5+VBCxM0/EsFfxRg8hs2kuwyKPX0pHANd3Kb0xb+F7gszrofEEYdKMK7C4tu7qOwJuydqTVlZ5rM6hFS+w0b6Em12Ad+fYtJB2FWaA6kqu73/eKUhlrRauaXvKsgpTEZTaj15+y9o3SoNN7SfOmhwpX/YXmfyPCb+TFxjxE0ilc6pwRQXvBwSverBrp/rRLm8Of+wfDHg1sZ699g2isyQNlQNrBpWvkQCvUGP/DTkq5PGy0i4ti2yamrJifkXteOfkNTs+tgc7Gb7XCff0TrCKaM9cv/xj+w1Zkk9EXbXMvNb5/2+/Tmz6YhozfWP0jd0THRvUgL2Uo3aScMPfxAiaBtYQWhQ45tzym+peNzv5aSLHlZUwAAZLd5h36cQHMFwXLK1HIib/ssiAdKMH/k8i328jLzeGTkjGxKhRx9VXSBuHPanz3DnDDlfRU2fWZGAB7FabHhyczINS8xaWjpdBp9lrYZjDh1Cnp7uu12cSu/DOIXCYy5NtMAqH1z18vPtr4j5kxjqEjDKauQGT3WHlsWpBuRk/Hi5C1zZLoh6aEyttMkFC5HCcg+goHehdTfqP09EjpC/uW7mpuIvSwGi53u4dDKxXN4RxFgJFwM39zjF719BuaitsTRq/NiVm78TDNrd1G2PzCxRaeG86Li8K6cGLOHlsebeGRd2zIX6Q621TdBRzIhijzwVDcZdqrVoBBrCGnniYHJeF/8FONcY1XXcKu/xXvSB4I1hpyFqEh49kiUL0zxfbi9W8d04t5h/LOghKf8q89J/rfdkrWDkhw3RT/EJSTf+XFGOa9fgD7rB/A8MAKZsi8CTB+bbngnZ5NQMrSx/2G7Ygip8LyJ3ems9Z0PFKxhSwCc2uSs13cH97LpxRL4VkRw9WGJoPkVBtECl8JqYfa6QGZuplUCgvZhj1QB9k=","layer_level":1},{"id":"d989e9db-0336-45b5-bb9a-08c65211d8cb","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"Go依赖管理","description":"kami-gateway-dependency-management","prompt":"深入解析kami-gateway模块的Go模块依赖管理体系基于go.mod和go.sum文件说明依赖版本锁定机制与可重现构建的重要性。阐述在Docker构建过程中预下载依赖go mod download如何消除构建时的网络不确定性并大幅提升CI/CD效率实现10-30秒快速构建。对比直接在运行时下载依赖的模式分析预下载方案在稳定性、安全性和性能方面的优势。提供常见问题解决方案如依赖冲突处理、私有模块拉取配置GOPRIVATE、校验和不匹配错误应对策略。结合OpenTelemetry、beego、sonic等实际依赖项说明其在API网关场景下的作用。指导开发者如何安全地升级依赖版本并验证兼容性。","parent_id":"3cd6b111-cd55-4414-9a4b-23c4ecdd4953","order":1,"progress_status":"completed","dependent_files":"kami-gateway/go.mod,kami-gateway/go.sum","gmt_create":"2025-11-09T23:08:21.228192+08:00","gmt_modified":"2025-11-09T23:17:52.274958+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjmvwKXP9N+vDp5uxJqbjq6g/zQJ3dm35cJra8sza+QSzCOjcM4kgwQe83rG6SuQVkQwozFwxwYlU/QzPePb+brTLZWiKO81fwBPUekjHHBZtbIsAlR/plv1BQaM6ROSCZQzSTCzC2MJC+zkIrM5yunxMM81oT+sNcWijOxAgtwpC1bOod9l/zdzTJVn3+9vHnW4RvUQ1jMUNF4yS5qfI28ngg22RzwPxjEDCMdve9rT9RNofBGjI6h1v2y5wt3M5ZbENNhz17T9vGzWXItLx4oS9GyCoZA+3D4w6xeKIhBek8mbMpnxPk153fmVeRSDm8aX/vMlN+qv2CjS6bXY1Y6wMB95P9q12/XjVwaXuVoQqlmw6PtguZ8vkvDBYNOV5oiwfqUYA9M+uvqBLrFjpiROREqpqXFBiBk8Z1nNeG1RJMhTlTefbSEs+rxzI0bhJXvP9LBC3SmhRfz8p2IpwrYkV2lz74QaYqMNud0m9ug7L1z/jknxh5e1bO66OCFMUOO8ANUcsZ5T7ydVc4IbVBaA+fdlKF2sVGfXszXc1loyhSuh81oUjWwiMCaxA7fj46jWgYi6qPeiCPIl3cxyBe7yuaL508Sfh9tyMOnfp/ecbvOW17p6KYBycQ5ko25yNoRzBWYO9QXUeH+f6rM0Fzbv+bLpt29vjyCz2cStl4m6dH1xzFvIT4zJGpuJivjPZN7qtCUxW4ldG5X5iOckgNvErUMskjO4oi1XNdQpnXruH//2JCBd4vG55DsVVlYy+dEDCN/PTsAGqSOVbyo6VX/H7OXS0F0pCrz93FLTMeaBhxP/gMFqRGXTFyKIp3nEbyQ1MoHbzc5TRq/y3pxOscXcEJN4v4WfaDw4BKCtBslOFzwyqVR1QhAy4DWXTngVCZ55OP5pUG4z2PWqO2CrFyNsQdvrXSN8DIDRJUBFW8rTsTErJq9Cd7Nuwk1LEqJxrBp6Z4B8DvoX6nPK9P9rsgbn/9WSmm2VRud/J84X74xaGKsWI2ysYAxT96Q4leEykFlGl0tmXCogWJZiVRjQNr+Mq0RFANQ8HRHNBGDtpUkiOnIgV1deMdGiAJoi4QskeBGbRgvgOX/I9ZPtXERNMEKPvPlZO6+hcDyq2lrEuLJIBmts+6kjoF78M06L2E/aCGycjEJcdw5rG8y8Isy23rTIMS7jJZcw1UdwHqpbPjBwRp++uIqitN+MOWwdJa9q7die/kjcID1PLJZO4icZr44LH1mOjM7aPMcukXCeMbYd136bf+SnUshCAzQPwQ6E8xw5x8YiuBXtZoUPIXSyP6oEtprfIjebufzVxW1+DS924yjxM4Bo2KpTGSH1vg9fRVvBvLD6IDSU2h0yCYvJfcwqSOEBDJzG1kNXAag4XAcN0qCrKq0jKyIo3C/+JzORhKwgr9Re7z8O6Yec7959kSITs8RKqsWSbu6WvanJ2HfgoiSnvyeP4gzJw+eaCX2vAPQ==","layer_level":2},{"id":"7e3ebf37-1574-48e6-91fd-c38325ba1c0d","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"alpine-base 模块","description":"alpine-base-module","prompt":"深入开发alpine-base模块的详细技术文档全面解析其作为通用Alpine基础镜像的实现细节。详细说明Dockerfile.base中的每一层构建指令从基于alpine:latest开始配置阿里云镜像源以加速apk包下载设置Asia/Shanghai时区安装curl、wget、git等预装工具以及ca-certificates和自定义证书的集成方式。解释build-base-image.sh脚本如何读取环境变量DOCKER_REGISTRY、VERSION并调用docker build命令完成镜像构建、打标和推送。重点描述非root用户appuserUID:1001的创建过程及其安全意义以及/app目录的权限设置。提供镜像大小优化策略分析~50MB并展示如何在其他Dockerfile中正确使用该镜像COPY --chown=appuser:appuser, USER appuser。结合实际代码片段说明构建流程并列举常见配置场景如自定义版本号、私有仓库推送等确保文档对初级和高级用户均有实用价值。","order":2,"progress_status":"completed","dependent_files":"alpine-base/Dockerfile.base,alpine-base/build-base-image.sh,alpine-base/README.md","gmt_create":"2025-11-09T23:07:27.82828+08:00","gmt_modified":"2025-11-09T23:09:00.385053+08:00","raw_data":"WikiEncrypted:PUwbnKv+OblcItyhVdInwlSBDDVBKSI92baM7SJ9HBnHTqB3kWLd1aBN4kZ0blEixVWt0Rg9Ovzq08tOOpHaInm5xMD7NOC492BL44IwRLC7mSBio7Ib3VFrIXzX3iGSogaE5QSRv+u+5dJM8DTOEZSXi4RD1w8b0zQJnvQJkjXywgmEoK4xtqG59IcRMq9qjHHTbP7V423pINE/98O7VRuu+OzCkelf4swGvZonauegSpCCN3LMAFZcTD5EqSIgw0sqTDM6tBql3ev7ilfsUw8ClTm/l1s1fUA8Q6q56bcaAwzt9MQfHo+C9/sSkiOrGgYrUXQp3g/MghLY6XwqakC18oiDsMoh988pOWOF3RziXcnE00ZjgFbRJA4uYINsyUiaflaIptABx0tB29jkzprhJZNXCkVmkQV04l2vWHgrV7USmboZSQyxL+cp9cAKce8gKSl0Nk9MULzXqvPTnotCcE3r/MwlTq7MI8oNny6RwtVb5LpL0lzxrw4f05fCwYrgajplkQ7aofgot5q1ibbTtdrSGDvVfBqMOD2Y0EijE1RAMniBbZqkCxP60k6ugkHHsKqwqC+X/M7y2YrIrWFMMxD+2AvOCZ1jOmtiN4+5IeYXmueAbnhWgqHVuIfIxVO4orlgGfgcjMyUhYg9+4iiUsNmGJ66rF+wOoaXTergVc+4qY253yRhTtkVzcwpnBL3YHKqIn13NgsoJLJX9Ck4JNlT3nhY/gMJBNPZHdQjoOpeIdSnt6lXceTDo9Be6jhp1FOdedG8w/uRdtfwVL8MJZqyDv0OqbAztzRvIlHj0x0mADulx+xlXkx5CLKsdG8EROyJZCrsr8+hC1sC8xeq8Uhe0UcNfZdZuUB5MdfzJ73l4FfISOlh0Y/FecdPWWrb0tVEz5JVO56bd14CrVfIbiW73HYPgaAWanmMkTcPQRZKlBM+f5JLvW2WzBybvdOpwvJpyznL5nIAldxfm8fK55t2iBt8gtO3bYJsujXtHj7M8MULaxauyDbOu6jhUtX7gbh/x1pRx8gp8vjUodzvJfnxWtmyzieJFmNflEeVwe+CkiBzXdlAv2CkoTzSLZVZQNSowszaQNKRgnhCw+cxzFzsUQQo2ltr8K1+L207PpRovnHmc1Pt32EVfr4By5RwkZr4u4Nbgv8VhHxCwguNBgvmfcrN1fvEu1sjS3CXeCzMqsX9j05bg+yPDWklA+P/t6f1s0l3eg8+YVYS8SIhybzBqk5vBpPmAMP0+BcHNA20LxTkhX/XCG6Eq2bWLDTqoDkz2ceh46KnwdIr0saTXoMUgrCEn7XBX7e6gsfU5x8c/E+xGAH6eP5d5+R7iEMPmaWCS0QfNmQDIOQUoQm8oqgw9ch6sFUJjv5GnOqFnhrmQDjfwpMf1sQZdf08c71b22ff0fGQwLROZ4FrhSFkMH5rSH3pkNiQ27oLrHwuSepWLdaSdYzPxsIEu6SrO6+kWbeQQlT4dff7PDPbByAHQ1ZXVmMOt5YTd5CsHkBVQXwTnz2FvJMBybzCOFLQWXcGJi3Q+q9PqjegDxrZVWlKkVzKwmyiPpD9Ap6DIFl8MOg7upVgh8C2pYGNMPf70jin1fg5GoIwuNROXjgxKxA9zuXbT4HKrsZzvpAA7/2rNWJNaW/R4RX1iJaxdvGQtZ6IV/FfnO4PDqJ8tcdrVlxgGZRvVUmr9cu8/LJJzWRNU+KprFv8kBlzfZHrbDwEYyXveCqg/jokdEaLpo6PyLWKEBjrTmAubXgY+WvCZt2+LI5JRoOcDehSgs7aD8OcWO4HzteXquSexvfMoo5PUNhGOa/7AShqKeufrKErvQM="},{"id":"645a2e40-6ce6-4b5d-967b-5ccc8e45f41c","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"改进型应用镜像","description":"kami-gateway-improved-image","prompt":"全面介绍Dockerfile.improved的设计理念与实现细节说明其如何基于已构建的kami-gateway-base镜像实现极速应用打包。解析该Dockerfile如何复用基础镜像中预下载的Go依赖和编译环境仅需COPY应用源码并执行go build即可生成二进制文件从而将构建时间压缩至10-30秒。阐述多阶段构建策略在减小最终镜像体积方面的优势以及如何配置非root用户运行保障生产环境安全。提供Dockerfile.improved的典型结构示例包括FROM kami-gateway-base:latest的引用、构建参数传递、环境变量设置及最终运行时配置。","parent_id":"bed2c9b4-de63-4b03-8187-d62744475754","order":2,"progress_status":"completed","dependent_files":"kami-gateway/Dockerfile.improved,kami-gateway/README.md","gmt_create":"2025-11-09T23:07:52.904207+08:00","gmt_modified":"2025-11-09T23:14:28.645855+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjrpDCCzu6hEemNrCSY9eebTEwPj/TEfOtdg1AP7qTRQXY0joVS/jf1l7pTBjIOU0oH/k8FzKEsN2tPJ68W3ubgf7rirsKODPkCZVrj/KjMpdJKFTBYW2VLbOOoJhp/cD3J25Wlu9E1MF5d7dCg5w+/bVHgE0dfreZqb/OTpB1ZUQwjs9xm/Bx74OM8K1gtGbukTjUsLS53l+WaDZIghJtIxC8xy4sDD1y92El5su+8n2otiJF2Lmb4wnCHeHxnhZ1aKd44qhuuCgalARhSH70XAzl696EfMbYlgh7I4Ki/Hk1dihrHuBmdK2oLrL41FEBPORb/MT7uwXqQTjgFQpZNJorBg3k5xu64c8QK5BkkB/iJRBuX6BCuP9cI54kQqXM5Z4TrOZEFo0lBpEx38VnMYZfmZkz6i1KxWyak3QjEbqwNtPaARlJea5H87nbEtomIph0ngq7Ox0mLt7o0s5+1nP/MIaf5fxZpFhx9chaIIGSVc1bLJ1sEd7J1NE2M9H5mzPct/B6kIFov0S6I++pZ6qF4cFx5dc0im90IUNRzcAQvteXo8/72HJuAr44cgV0bmGQ8kHc+/nZULKb+iQUsfUdwkh36Q+ZPEYMIUVIE3su5/TwV9urt5kWyZtIG/3byaWu9+hfPVUroa9C7jkohiJPRrxEJkvrUxqyV1cm1FjyF3Us549bAoQ/H8SvYQW556Cx7hAXZza9sE+KrO1lpLGaS3WkGcqF1sgp9afnxAzWJtsKZ2m4RkYVftywgukJq+aQvgvoa8lCnUz9uKRWSFQ/gk4UAcelsEX0hKRKi1LGoxKmoKZc1Yhjz054vwVPembFZWP6OTFUOrjq5J5wt82oWW52yG/bMRHcboSeENJrV6gAkrYdk99p1ufEF2TxK1lj+V1liRIR7ckk4TXHXY2KlocDgQ8eh71EhQBQs9WyQu/aQtxRj+4jcHx78hFgahtqZB7DmFs2lHeNEXPQRM78iEfxI8LgSE4ZMykT2AjQaRrKt/s6wv3ZCRNC9mDHmRHxOOu8wYNV07ShtoCstyxLXZ/tcFtXpNQOGcbAzQgVZKlo26V/Cg0wpWlU8orQvY0WBGvUogiXRp2ZPgoAYuKhcab16TsFwNawjDlmd7nIoMHEKPhrDB317ULpri9n2hgP9Y+A1i9TX6K/iVvric3ogBpLd/e8WKvI7arNFwIKVPPAmRc8deGMNIAP1h7J2vowIeIuh1DRpPPGogZm0bvorxr6ZTKn7Og+kCN3uK9LYEbOnhA0idN8sA8JNcTgJzyWKO2XwIgI/PWXjelWfIJEY1v36jjc//nkqj6PlMG6pRijsznqfvriefsORBqKIRSJWdRvhr2rb8f4dgMkYw=","layer_level":1},{"id":"269c6751-74e2-470b-aa81-73af9c865c7a","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"配置选项","description":"kami-spider-configuration","prompt":"深入解析kami-spider-monorepo模块的所有可配置参数及其作用机制。重点说明USE_PROXY环境变量如何控制是否启用代理加速以及其对pip、uv等包管理器行为的影响。解释VERSION变量在镜像标签生成中的用途支持语义化版本管理。描述DOCKER_REGISTRY变量如何决定镜像推送目标地址。分析Dockerfile.base中关于时区Asia/Shanghai、语言环境zh_CN.UTF-8和系统依赖如libglib-2.0-0的静态配置项。提供配置最佳实践建议例如在CI/CD流水线中如何安全传递Registry地址。","parent_id":"3e5a6a0d-ff7f-445f-9d0a-2fe8bf1feb37","order":2,"progress_status":"completed","dependent_files":"kami-spider-monorepo/build-base-image.sh,kami-spider-monorepo/Dockerfile.base","gmt_create":"2025-11-09T23:07:53.825754+08:00","gmt_modified":"2025-11-09T23:14:22.11288+08:00","raw_data":"WikiEncrypted:ASPW4qx/mEg7V7YbLjHCJaGXmfF7itgIHHEUTlMcz6d93ucAXvwC+kWCbz2cGGgzxR87qJ8vfzOeDf352LhHrSU3WC6s5U7PghXyVIcaeKQk9qDgYJxKV2hsAmIwGNQUHc+TfyZ9TditQ5e0C2cgEVdiX/FPs2vB1z7M4dKUHnQGd/+x5QZJt3BRzZ3XlDRpI5KUrcxDqbPbw8IEHECf+wX4srXyx8ekzTOf8LBpSUVnp8BBjvKup4VDQh2gJgcbM+AXi3SxT2NyWhziF5gZ0WLU7NDuG0x/ZF8JG0xbLLHxHs4MnnKMZ6Xb//wDnYEk82UwOiezQYXfK/mcAV7if7lgAC0yeIKkG/kTHm5b0o0SFzYZ95a2aLt2mVMXdrfHsFyQ8xjSFtdVeUeL4LocPAmn+a0SKU9kJOkF5usBnWBAKXv9VaRnXjXvPDfpNqcpKlzhA4LqD0RJPjvNGrCQkCZPryOyFmpAxs7YRW0yTCp4BmUfTIPWAGCkJOh4/BPJdlGhOUa0dutSQqjch/Lpz2bl74503Y4+FKMMA1cjq660Y4pRolXIpKShD0XqhQMJwQkX7dnLiHbdzTIro7sKjTmdvNOVuuScopxaf4POO/foC2bSEQEJGYkjwmklMl9VAG8+wmy9PzKsO9KWBMMdrVOOwZqLpjEeB3LvBHHl7qquGGlAWq4vZPhnH2KD68C1fuSCohduoEPXEZRTX7XCPuLLoue3h1vy4dDxfsZAKCZnjnhnoM6+s6kYaQf41qQT1Ki/ApqGWM2Zn7b/4PXsNk0Za0YBcyEG3t20ogCjAR7VTQzCXB+MwkOnrv3Ob2+Dovj1xk/ZrAL8jFmkKfBSpGJ6/M67edtZ+6EREjf7y0YHLLcQln7QYtJU77ZVXjSvlVIGp8byRRPhQDTz5eRX1vnuAQircHBVmg2tXmF/ktA8V3KYzeixvfxv4OyyPKpos9kYPwYjIQSRgflDfiqMangfnIfUDVEJEsyQ7cGxZlnIPwCIpg+R82OFMoCxgxLfVeVZ1b3HLfZ1MNMIdbhfG6+b3KEkFItdngcnPrjlEeqTMOv/kNCvP01ketJVe6io4tc9SSmYzRn+1CuUedJiR3Pwl1T10+17GeDl2cA21TkGNfHqneYnx6ByIKMRYSewYY4USS4SEPH9E5gvWAB0FFMB9LuK+YAWfym38a7je7DC+wLqb1/RKpvYOKZpxpZHpO4n3Sp47r9B7ACpeK1tdxd4YSzNvOxXEHRPjqXw3xyQZdm0YfnrHauNPUkHD+USqFmCOunpcf2EfKLZnjEz/Q==","layer_level":1},{"id":"339675e9-e221-4ca5-9a18-b2390a6d1aee","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"kami-spider-monorepo 模块","description":"kami-spider-monorepo-module","prompt":"开发关于kami-spider-monorepo模块的详细内容重点阐述其作为Python爬虫平台基础镜像的技术实现。详细说明Dockerfile.base如何集成Python 3.13运行时、UV包管理器以及Playwright浏览器自动化框架特别是Chromium浏览器的预安装配置。解释pyproject.toml和uv.lock文件在依赖锁定和可重现构建中的关键作用。分析build-base-image.sh脚本如何通过USE_PROXY环境变量实现代理切换以适应不同网络环境。展示该镜像如何预装复杂依赖FastAPI、SQLAlchemy等和系统级运行时库从而极大简化爬虫应用的构建流程。提供完整的构建命令示例包括无代理构建、代理构建和推送至私有仓库的流程。强调非root用户运行的安全实践。为高级用户提供性能调优建议如依赖缓存策略、Playwright资源优化和大规模爬虫部署的最佳实践。使用kami-spider-base:latest标签作为核心参考说明其在自动化数据采集场景中的核心价值。","parent_id":"03f420dc-94ba-4438-939d-b3cbb95856eb","order":2,"progress_status":"completed","dependent_files":"kami-spider-monorepo/README.md,kami-spider-monorepo/Dockerfile.base,kami-spider-monorepo/build-base-image.sh,kami-spider-monorepo/pyproject.toml,kami-spider-monorepo/uv.lock","gmt_create":"2025-11-09T23:07:56.011214+08:00","gmt_modified":"2025-11-09T23:17:32.615268+08:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"a26f150c-03d3-4768-9d40-9cf3981ff53a","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"CI/CD集成与自动化","description":"kami-gateway-ci-cd-integration","prompt":"全面介绍kami-gateway模块与Drone CI等持续集成系统的集成方案。解析build-base-image.sh脚本中的环境变量控制逻辑如USE_PROXY、VERSION说明如何实现条件化构建与镜像推送。阐述变更检测机制如何避免不必要的镜像重建提升资源利用率。展示在CI流水线中如何安全地注入DOCKER_REGISTRY凭证并执行构建任务。提供完整的.drone.yml配置示例涵盖构建、测试、推送等阶段。讨论镜像标签策略latest、版本号、git commit hash的最佳实践。针对高级用户说明如何扩展脚本以支持多平台构建arm64/amd64和自动化安全扫描。","parent_id":"3cd6b111-cd55-4414-9a4b-23c4ecdd4953","order":2,"progress_status":"completed","dependent_files":"kami-gateway/build-base-image.sh","gmt_create":"2025-11-09T23:08:21.229094+08:00","gmt_modified":"2025-11-09T23:18:03.5503+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjlFT18tj9EbjBLjefhM6qsb+iW3Sa6wVYn6Km45r/q1KORvzgQ2F86yi36lFzpGVbS+SlJqdyG/x48m009Zlowytr7fMA60jblqrlyFYywhxQA4/FQpouKsOsbKqNlBEwffzv7jJDf+VkCqs76C4NAwepWthCzUIkYydTxlPeh9c1EEFTaoiMAWjWT5OI1KVsNnvDUuDujzv0viUun+U5D52hJsDS8q5ddMz2GrGyLjX7WQkl+42+zUY0y+S7+TeTXfVzVtwa5+3T/V/blmNq0XZG4RMlSMkrI6XBc6YpRlYHr3Ep3FKv03c2zcldNMggIRY3k+Xtj0zR8mpqQPxkQEngkwuHgJSjvUAjgl/iV+9GJoiXYQ4F1xnlKfw4+/fAYSJpojP9fCNqa0fMpc6qQ42ipA2HQDr+FrYPliOJkyVo2+NhDut+c3kYqhNuXvVU8m1+fI2jdY3kEs4JDc2/RfnwC7uF47pLozvAJU3+jzzdAAm0HtC/gUODhomzQTk+/SLAQE4me4wsNDwfHmHaRhQELs9v9GrxO8IE2J+flYn7NbSCM9jgi+VZlgHwKlKGHBYDtSgy5RQ6PD1yM7u/baep57HoPaNlRSGr9e8RAI6FTdQGajJvlH4b+ZneX3mK2QAkK4S4iPnX4O4038HgSN4D5F8OS1Ll9VPhFGk8q6J5Yjik4LGazDnUvWfokp2IDbwxduoD5xIgMTorjzc4un/IB5aM291a6/Aw4lkXUbDvmUo/kvwA4SEjqBlf5PgwEOpPbYmnmbs7Qf79XxSGG8xl8pHFXPzC3y+S2GndiMumL5LyhwQU04dQh8U1A/WtInDYM3dEyZ92lkDSjCDjwDppKMHJP7gNorpYYhrrv9V2zI65ED2NwjrV/5SSgOyku5Hhtrhn+Kh9QNtevhbMcesFw/RgTa0rcQE9ReybFNaSD+hX+BjMOtH2+iia8RulnZ1jBe3xnYr/w41L0Ld/L0SQ5E9/qu+pxfzWmBH/ktN1ccTVt1jhFDMkuMewiYBTSVLc/mIBJwmf+26AB4f+w/zVaLkRJkGR6Zc8sa5fW+c6ojMW3IHbBxBqT3dj/scj83qwiNbvVc65zYEFC5Q4XMBF5m9W9oD20UTXn0hifT0QH9/qkZUz0fIieieqKmpU9D1bLN/YbVnS9GYsdpNjHrHCzZQJkoA21vXGIaAukruqo0fvVydrIZEnQYYM+uNKRs1y1+f3DRE3mw1Abxsg8hNFy6PJ/PUDWR4ea00ii5LXbY/fGhpu8wxMEtxTyZkoAi0XT5TmRDRd8TPSFJUAO1ynKUwvuYlTi5x6hyikW0IiKqfL58hL9GSFsZpss5GvtlyADc0qxjexeMRMIa2J9Z/idG2Gcc0tO/ZZBmSIhf+","layer_level":2},{"id":"bed2c9b4-de63-4b03-8187-d62744475754","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"kami-gateway 模块","description":"kami-gateway-module","prompt":"为kami-gateway模块创建详尽的技术文档重点阐述其作为Go语言网关服务基础镜像的设计与实现。详细解析Dockerfile.base中如何基于Alpine构建Go 1.25编译环境配置goproxy.cn代理以加速模块下载并预下载go.mod中声明的依赖如beego、sonic、opentelemetry。说明build-base-image.sh脚本如何实现基础镜像的构建与标记kami-gateway-base:latest以及如何通过环境变量控制构建行为。介绍Dockerfile.improved的用途——如何基于预构建基础镜像快速编译和打包应用实现10-30秒的极速构建。强调非root用户运行和多阶段构建带来的安全性与镜像体积优化。提供go.mod依赖管理的最佳实践并结合Drone CI的自动化构建流程说明CI/CD集成方式。通过实际代码示例展示从构建基础镜像到生成最终应用镜像的完整流程帮助开发者理解其在微服务架构中的高效应用。","order":3,"progress_status":"completed","dependent_files":"kami-gateway/Dockerfile.base,kami-gateway/build-base-image.sh,kami-gateway/go.mod,kami-gateway/README.md","gmt_create":"2025-11-09T23:07:27.829032+08:00","gmt_modified":"2025-11-09T23:10:33.893344+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjsS3+J3juI6CT146KDRQuHCEzadbEbF+X9BWt2fiLZ4lKABFILeTWU3jK6x1YwItLgstJDP0TC1lMvIDX3dO+JEm0B4FbTu1TCZe98yl2kvxOEVE8pPh36mGXc0kagPdjYimvqDQtjX4u8bFv4T9yOxYAYw11uGjIHSNcuobk+TPwkzEIoRuz9arU0gpdQN49YEuxL4IKTzdmeROdV0ZsgthBhPuL1l6hqJWx+2arVhnT8CSqse9axZfVpeD0ktZLcJqZCRlKOYk+CdfAG1mhmJsy5wotjtgYDD7typKSxsTZorNHkOILo334Zc9bcsaUiDE8MJa7+Cq1jCQZqxMExWVErBKDK2HqSlsrAqTcLvuV+tWksOwCPkexN6OHV74ET6AWrjhbWfSNxRJPhIlme0DNMUTI0+zqHmbK7t+QIKQDJdF5YJbGa6CSp1v8wcZt8vIO4Y2ploo7xmxpG7Xlueyy6zywC4SQhpzhBnSQzT+TFacfNF/UviUCYFtj8DW7tQlDkWapz7rhUb+q4eMQq7RmDkQ4H/jCvJIDaQWxfGtFwAcY81XTh/lOb8+7VQLflnyAkXEsVBW3lplouxcnUw9NFie1rYP0fZTh9Ye03Vz/2S7syFZCv4mnhev27DrHllI+QfrjV2bihJfe7hr0lOx7VeT6bDryeElMkQlcIQ93ZJNYpzCHCmTEr30mY9CFRFaFw6omOjK9B841jSorOexdZusrV9mSHFeFK85KykaVQwYT8Ue6WkQOoOXiMnjuujyOIjyVFfcUB5loY0Hf/I14xcXvD+IrcRtdc47+pfS9JHRw22IuPsVU7kiKzMOjqxZ3LrSTre5MOV6e/WRD5+Ggp7Jh8TuWU6aqeKaFhxpPv89Y1tIYPOfuoMPH+FF+LIB9PzqiAfI58oHhxvxrafV+mPa0kDCErfUuiNkYiLjERfzsoImlzGxFNBEDQnOaMyiWct4zYLEy770EBWT5i1eBHR2thcC72da+3sVG+w426HTt+PClm39kEkSyfBy6mvmLyS24j2eQEuWcglIM/DSw+z5r84DAE+h00/xy7/mrGtNbmdajWnqSLnBnI2oMgAPcrNzgKCkclGtoWZuAZ3HZXOZGoZl6GIM5OjviTtETrjOkYH0QYORdz270LhnxuUYiamS/ehoN8IEiZ4hf115t1FcQEz0QMtre1R2d1+CLXtNr+XiY7L3cEn0kXdeVpzCl2f5TQ6sxnlQYDrEJaOhK+H70d1GlmtTX9U02U8KX3tNARix2pX63AQZunUiGZCf4myrPGt4I3iBGVpdMt48nSML85hTbdMh1jVO7KDyepEbj9MwwmWuHGCWpjtjpAu/Xiy4PkjAtRZf+99pzYn7YRUwKQMOoMI4uYacXNK6PuXViK4a/QY6NJAa65+uQK+Jp+2+qzckdKRKk5iWQtf8HCUC048br07gH2WLQNE+4xKNqgBrefi/7d2NmkQwqDJ0MQxz2L1kTIIG2l+n+OeCmjZTRjFeuXT6Ar6cq7HZT3GRTna9wpP+t3Ha+2Uj/YIGdvJpwBYslZ8UNd+RwVFS0ZLwNa+TLkcpL9hGBl1EEahIR5ujX1aQprdpvsalvf46G7jmf3LvqlNXD67tBK0EZuylCniy7awEzEYz6CqgbTeDVDJHIxx0j56iELhcUCXaO95y9dU2BlRa72+dRJEvZq7jOKFIT6T5XmOwzKLGk1vhAOsvJ9BuUeYRbGkAzr3TF37yU7ZpXW3I6GZ0Gs2+/u7I6fJNTGHI2DF2uMoQktF2CyUkuhu2NmD7qeWxD485+xGqeQBzxev1KqZHqmILxwoFBH7ht91CiUkQxQcwnUraLEwjPBECLWatinh3Dc7m+8W3SITQbUwezGGTKAI="},{"id":"c99b73ed-5093-4cbf-a45d-b1eee990f2d2","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"CI/CD集成","description":"kami-gateway-cicd-integration","prompt":"系统性地文档化kami-gateway模块在Drone CI环境下的自动化构建与发布流程。说明CI配置如何监听kami-gateway目录变更触发build-base-image.sh脚本执行。详细描述环境变量DOCKER_REGISTRY和VERSION在CI流水线中的注入方式及其对镜像标签生成与推送目标的影响。解释脚本中条件推送逻辑if [ \"$REGISTRY\" != \"localhost:5000\" ]如何避免本地测试时的无效推送。结合README.md中的CI/CD说明提供完整的流水线配置示例涵盖构建、标记、推送、通知等阶段并强调自动化带来的效率提升与一致性保障。","parent_id":"bed2c9b4-de63-4b03-8187-d62744475754","order":3,"progress_status":"completed","dependent_files":"kami-gateway/build-base-image.sh,kami-gateway/README.md","gmt_create":"2025-11-09T23:07:52.905268+08:00","gmt_modified":"2025-11-09T23:15:18.136633+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjiVMh0W37ivm45D45BQDVab7UZtV6uy/z1pHARP0KrVWz+6XRjjtKSauLXyzNKdYSdx2neeeAnnYoc9OWSc0HByEMsT/dAkSxFwPQE5LCUiMyBVLGnLedW2avTMELteY5VqOspAzh8YppWquc0S3mmgqoNRBhbmC2QYIVFtH+eihvi1IU2iUoNlj8/jrytbRIEwYhsk1Py3CtCNQyAzu5r4bV9Y0UCm92qi6Cu5r+FlDs+jqPH0RYApN8JQIAErn2B2dBYhoADlSeVQBKngyByD1mBIpQxtR5qw2paoLEyDLf+yH3hIsIVICgu98H79eMdIJoewVELrnhxe5PInlsjD6D5TmA/VJN5NUsDfvXipAyqgdf/VTOBBg08mZ9VfqTOZ0wGUB+hihC2DDq/iAHKOPn/s5fKuG9DcCSyRx+wtiR4T1scQlFQ4/h8sjJMKK+tc7VDNbsotzy+JrYXV8KGuwPKAJE/CO3vrqNW3WTK9CyJ6EouKuTG35tzircXOIsUloFc4LvkGKcD9N30Ip7gZ5UWat5CJ17m14sdcZAftL6ZPjkWaKRr4RovrtXutcP4reOTZ57NpwoGEgWexLQljWGfy1QY6DAoMfhmICwIRPIf68EP4NBUYpsN9246ntFyTZvd7I9AZEqovLqFTHbwOIyhEQREC9FLQ7R4DEGLhIftlJajA0ArN6tNeiAlZYXhurBlw1XfqMWOB3zUvDBfcfNYF1RtKyS0XrX9i7yj7zyKjPvFSimUzipMpL/0u7W2azgG+T36njjLKlXTmbQFkfIaSY+1ZDFjLuGLft8npl17CEmHEG46q5gl1WTWyDoKdJgbz4xeNfmgdnig/1dU9WbNOeeMCKyxvKA1Hb+k/KphoU0bV1VuY6J70giIOWl+PSfxwcxD/6X3DFTSb3wFyd5K971nh/j0vMXwOjAUKk713Uj2SkXvvp4ocPcA7a/fSupHL8Yt2waskzhpo8E6j5jf5JEv/kcK17o9SeH5IZtAhLMIevWez81eI0tNI06ebbLjWm8FKjdC5sK6sXcOG6hcEMw4TgF3FNuE+ZB6Xu5PKvmfxf1XeCQe3TLC3DQpSFHOk4a0lBva41UbXViWwFvuiI5MapK1QGaIZVml3MhIOdIRJOSwVTXMCgTYr6CO/WnvBAlrdl2Cfa66qhzwnu8e+keCojLJx54eitRFWt9jmAuctPQf/jG0lcCiSH2U+G0nlgLXgpGgRzw0oJWmIZ2hucxEixlPpT3SbhpF7IWJ0Zw7+2MYVcaoQ/TAm/N+vgjDrWd43Qhc6USG34/u3B1PTUFaNokOwy667K1IHsgFX5ffDNnZyklnNUi51gIb0PGyzLShTd5om4nsKvZYg=","layer_level":1},{"id":"b88f3e9c-a57b-40bc-a946-71407634e380","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"依赖管理","description":"kami-spider-dependency-management","prompt":"创建关于依赖管理的深度技术文档详细说明pyproject.toml和uv.lock文件在确定性依赖安装中的协同工作机制。解释为何选择uv作为包管理器替代pip并展示其在安装FastAPI、SQLAlchemy、Playwright等复杂依赖时的速度优势。描述Docker构建过程中如何利用uv.lock锁定版本确保环境一致性。分析Dockerfile.base中依赖安装阶段的优化策略如分层缓存、依赖合并安装等。提供更新Python依赖的标准流程修改pyproject.toml后重新生成uv.lock并验证新镜像功能完整性。","parent_id":"3e5a6a0d-ff7f-445f-9d0a-2fe8bf1feb37","order":3,"progress_status":"completed","dependent_files":"kami-spider-monorepo/pyproject.toml,kami-spider-monorepo/uv.lock,kami-spider-monorepo/Dockerfile.base","gmt_create":"2025-11-09T23:07:53.826603+08:00","gmt_modified":"2025-11-09T23:17:09.554336+08:00","raw_data":"WikiEncrypted:ASPW4qx/mEg7V7YbLjHCJW4yexvTwPheebh81+Xv3pjBkKEHQ+NoXTZo2Sw/KPBHvoP1AXYwN5gxdEKGyBjg9tGHTj1cCgruT9WMH1lx5NLS6cVImWICmE5pVI7mEV1argdKheSeWne6Wg145SO3uSEQgFpbD1MTDCYDG9Kq4Q/S0RFdwnfysdxN+8uhozCVFHSkbMcp4agZaHl5cyH7H/cLBsIAC6fAjSaYWQ+1le/Hgu55+IadG9Mc2XesSQaPo/nQ5uElY7tHId6dYz9qoJ8j0+4ek8S2IvnuJzXjVXLOo9Zh+/Q4IQ7g6y6Xb5mRjhJCZZdxH7w6ReLiO9RPsQ4H2YdfM+1k4BuFrPR6aKwNOa8Ddh5bHnoVTunt2mqNBG5eH8Yr6w5BbkKQypxXmpsya7AOliFPZhahQgatazc25wDOw41bMVJJNKI2A/mEwKTlP/9hprjEkx6qBFQ85iBOvsNY0LdLnBrjQkd7GosUuVH8V9DjrKtjo9lNpPQ5ncVM32Gi3iAOLj3dMZp+buW/4tiCMsFTrNC9vW40rQgQHK1B0hAug65M7NhEZIJi0e0RzYuZ2HSlV5l8p0aD96hYmETNs8v7cPsLiBNpSVhqV+fisH7Wp55Pk5kebXwiLy3MhcH+o6Pb7rPavyVubncRcveMkqWUSoKaAzuhNMbY1bFYN8pCYr1c3H0v29MUKXZ/EPhKqbQLH79CgGsRA0cQLRzMgiXn+P6Esw++ZUD2RKMVycdb/n2xkxL2H1N0dZcMzR4hdDztgXyKFbGjZbpQ3YgjhT/P/j5bYBuUXCIPyZYw/pXi0x/GqP3Ftc8xUJg/pnuG8CNWhYXothcrLc6rmG1xmJNTyAPPPtw7kspeHc1r0q4Dj6niz47eZaNmEo9x9M8gMSg7gKC4s+z3hNb1W1RR6weM066E3ldfSz7TV5bEUTY41h54YJqwx3bROLPZL476q67DPDu1rKXPI844w42Nwn3fsmhDhlswtGZ8uTAaTzpBWESsqhjbsnY7/gOJ8FSatxVPHfNmR93XJRGGhENeTBbjq84OK3FtvsqRJfmvzgtdNkM0724pSjW4/FfbkXILKRU3mf07OgaJXKBrrloPA3Qoh7IBhOX9uWGniuQfHVp+8crVvc2ATySe26j5j6oBoRaJBh+RWgpATwhU9ComEnwsp6S19xGtOX2BI4S5xgFrU3izXSf/zYPbLISgVqDiprvRX76IFxqJc+RJhbX2VPEjQELanAGL0OK+UsP3OkQnsCNUJaw7iDl18NshiFro+lomF1UF8mdrd+gKSj1whHL0Qy7L13hmx27c9qzNCFvGz+BULKKf9jaTjBJy8+KttxzF0RA0Y6K4PQ==","layer_level":1},{"id":"807c5414-dbc5-4fb4-98d1-34245f938219","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"应用镜像构建指南","description":"kami-gateway-application-image","prompt":"提供从kami-gateway基础镜像到实际API网关服务镜像的完整构建指南。演示如何在应用项目的Dockerfile中使用FROM git.oceanpay.cc/danial/kami-gateway-base:latest进行继承。说明如何在应用构建阶段复用预置的Go环境与依赖缓存实现极速构建。展示多阶段Docker构建的最佳实践第一阶段使用kami-gateway-base编译二进制文件第二阶段基于精简镜像如distroless打包运行时。指导如何配置健康检查、启动命令、环境变量注入等运行时参数。提供完整的Dockerfile示例并解释每一层的优化目的。强调镜像安全扫描、漏洞检测和非root运行的端到端实践。","parent_id":"3cd6b111-cd55-4414-9a4b-23c4ecdd4953","order":3,"progress_status":"completed","dependent_files":"kami-gateway/Dockerfile.base,kami-gateway/build-base-image.sh","gmt_create":"2025-11-09T23:08:21.229659+08:00","gmt_modified":"2025-11-09T23:18:39.246634+08:00","raw_data":"WikiEncrypted:rEAPRMs+W78U3NolG1cAjpUG9zVReLON6+B7Chmkmnjc1S238+QeZKMCaGz6Gs3OFHTS2rX3okiKjUgYBu0BiC2m9QXfw37xW1YPB3d4/hJePp9dY4DLtoOmngCTqhLMjYWqebnp2kkdLkItEBN+vJSAJRZ27kB35bgIuDN4QuGnaxDStlw6C3bNPTG2bL4ztwY6hu0dxW71gU8VshKYE6lsxm0Jq84RGJZJxVvsuYScCsQW/R6iCoWcBG2qvl5LlmQxXCNIJkqJVgkiDQQF/NqkClvkmuHiUMtK2K90t9AKfIbNjHJG3QGCwzOOPGw6qk4trS1jwJrybd9+nMnB4Z7CK7E7sGWYuZg5JY0ASGeql60yyH1s/mZ4lQCKz94DKqW87ew9FkrhotX/PHFpIQAIqqRYIeOrtbNZiL9oRp8gaE6Dj3h91XLlUZLvah4473gTWk76L1f6M41TlQql1ExUgvr5eseRe4Fz7o4Rbw8rchNjAndwfwG+aSd8DfALFt7nP9C7gmvymhuWde2IqPhjXSQFtnu0bKM9BZDi/MO2yWJODIITyL/voojPSpZsWBbuIzMyRUpkF96VdbMWx258IGvOyP5qolgE1g/jHV7J3pEJa6Lr9JUGNWf0d1xVRifBMH/ArVThaIJW7u4twsRXhjFdh8qf+a63d+/TmpoRbtU2GJWUPnXHJa7xbpxTTCt9TQh3ihAe/OwsdDh4m4v6cVOb0hrBh3MuC90uKGp5HBC7rzHMj9OTeLBnHmsGWso0LiQWYUpEFBRR2Aad5PXAGh/2QH/4MCEr9MpmijXNbXhIWd6UbmXwCV0OVNDvAgViC2ajmSYYTaJPoOsmiG3kq4HGgF7l2xGMQYTX+eteqZfqfmqBNXH8kCJw/nD2mVjLGTB07r2T1pJyx2q76xfdHZfSBY0dk8B/cdwPhootmzOWajrlpLQxewEVuzkvD99gsjUPMmcYnHvuNdLhFM4NNpfGlJI2OcpB+nwlgPRfn2VL8FrrycOL+vkzw1EVaZwrUfVoPFbtHdDAbezvicACUpSqPvroth7/3Vu0lcHcFi+Pn0GKqTx8AnUb0OjV3epRF2LEGeaqQyPp+C49eDCA5aJD2MAw9YHUVlcgD1Q+QDlYFdkJlwOA5h43hKdqWYAAvBJaPQ2C6pfX+WldsO59eQZFZtF5WOeM/boHCcZjyO+YADV4cft45jbTJRp4EB8uSQT+fYoPmfdUtBUgmxcqjSz7ImUTz0vhK1NUqWwrxZaNF0ThxE8IOB5J4jvph0UTTjlmHmZNYvzzKPZyL9Vfy7Vn8ju5RIcCiCg3WWxGFm/7mla2NlsJYxUwEMJgrDAUnG6j9uAN/kYpN9fKeB9jtk2qmej6T/WKU5zxSLrKvtK22q/n6crEHTdvZvZIMuOo02XkHdAYx3A0e2XShVcjUUF5uxKOOHUBJ76VOp0caV61JcJhestyxjHqQ9FN","layer_level":2},{"id":"3e5a6a0d-ff7f-445f-9d0a-2fe8bf1feb37","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"kami-spider-monorepo 模块","description":"kami-spider-module","prompt":"为kami-spider-monorepo模块开发深度技术文档全面覆盖其作为Python爬虫平台基础镜像的关键特性。详细说明Dockerfile.base中如何安装Python 3.13运行时、UV包管理器并配置清华源以加速依赖下载。解释如何通过pyproject.toml和uv.lock实现确定性依赖安装并预装FastAPI、SQLAlchemy等复杂Python包。重点描述Playwright的集成过程包括系统级依赖如libglib、libx11的安装和Chromium浏览器的预下载确保开箱即用的浏览器自动化能力。分析build-base-image.sh脚本如何通过USE_PROXY环境变量切换代理设置适应不同网络环境。强调非root用户运行的安全配置。提供构建命令的实际示例并说明生成的kami-spider-base:latest镜像如何显著提升爬虫应用的构建效率。结合代码库内容展示该镜像在处理反爬虫、页面渲染等场景中的优势为开发者提供最佳实践指导。","order":4,"progress_status":"completed","dependent_files":"kami-spider-monorepo/Dockerfile.base,kami-spider-monorepo/build-base-image.sh,kami-spider-monorepo/pyproject.toml,kami-spider-monorepo/uv.lock,kami-spider-monorepo/README.md","gmt_create":"2025-11-09T23:07:27.829743+08:00","gmt_modified":"2025-11-09T23:11:10.925228+08:00","raw_data":"WikiEncrypted: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"},{"id":"779d5d86-9d89-456c-9f5b-7dc9e122f01e","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"Playwright集成","description":"kami-spider-playwright-integration","prompt":"专门针对Playwright集成编写详细文档说明如何在Docker镜像中实现开箱即用的浏览器自动化能力。详细列出Dockerfile.base中安装的所有系统级依赖如libx11-6、libnss3、libasound2等并解释其对Chromium运行的必要性。描述Chromium浏览器的预下载机制及其在容器内的存储路径。提供Playwright Python API的使用示例代码展示如何启动浏览器、拦截请求、处理反爬检测。说明如何通过环境变量控制是否安装Playwright及其浏览器以适应不同使用场景。包含常见问题如Browser closed unexpectedly的解决方案。","parent_id":"3e5a6a0d-ff7f-445f-9d0a-2fe8bf1feb37","order":4,"progress_status":"completed","dependent_files":"kami-spider-monorepo/Dockerfile.base,kami-spider-monorepo/build-base-image.sh","gmt_create":"2025-11-09T23:07:53.827144+08:00","gmt_modified":"2025-11-09T23:16:41.812703+08:00","raw_data":"WikiEncrypted:ASPW4qx/mEg7V7YbLjHCJZBC8mhbljgoMjWDHHCmowAtniSjJlLzXJQJMlgLq5mnQ0tQlPzohOOY3FBVcG+r/1ghv0BAtzXsdyX9oXECjM+nJhx5YCFIKleALevcRrLPIYclNDxoOgwzzf65AJHncuYi5pCYXDrQhIims32ZUlO2tkb5W4zoU/CKSxNdROSakcaLLoI6n6uOKk6WrIXD3EIyy9sPxbv6269WlRIQu76Y1rxHdGV1cZtD/q66PPMxaTbue9zgWfskevP8oQ7uZiA1kTvH+AwZT0lzPylgm0HLfStEojyL5TLx0bjb9FiMia4MjPLmWeAPmq4VdmfHdyUXU/sD/O6GDQJRkpO/MHHDeWHUeZpnxZ1Do/Di2OPPxFEqeM24sM95bdqMqh9e+mBxj4kJka8uJ2A4s3ngYPK+MqwMB2Tzz70E2YffhR1np7KuZRqESgb5GQ04kcaPkOnQFKSnuR84+gkTgOKVA/+ZaLcUGgAnpxhR7psHL3qB85FcDuFT9D2KJ5pKo3PCC8/tEu+AGmhCu1pJEY6PQXpyHeq+F5swEnBYoeTk573zMtN7HXVo916pGfPM77LG1hT/P6u9yUwfzez02Mzn64OwJ1pbw3X8mkbpZKBX7GIaemS3HqAnPJAerDEabVFGlostRGI/jqvBX3gW/erVtLf5m3xmmgtbbQES/47EEtThh57tJ/BEjBWvWju1Tuf9Hm3XO10jELZYN89G4S1k6xS5pPAicLzXeBX2cWNQEj0BehRP70hPw6csyvOnR4Y5PJhKa6dKC6XqF1F7/CpAMgUfOeidaL333sm8eNJ31efRyXK14JpixSplB3saBi41Pv6Lo5NGXZDUW2wVXvVcCa7outJnsX14I/NZ8zhiLoY0Zap01OQxxEUab55dkxx53Ewvuyo4z4tc53HO+IrUneWDaOej13RzyqtKfUWtgFuSnFLxCQW8U/umanDqquRIxobM5HinZbR38YN0Z0GtHUOTifN7/U7tT9Fchgui2rtwULqGcHQs5BCXPMyasDhOqUMIyQYhAvzdMv1pkEo53tgNOIXG8kKV6oQpZyTtBlOeQvDQL+Uacd7fbRCUF8rU40GJwM3+/QqWaS5t6XZD677vKIpB7Yt4X+3BBYe3/NIJ5ChlalRbiX1lbJtlQ25jd/wAL7IUkM4XdPDUqgF84TSq1EAd/KUjAV6TKQQdnKtcpI6KCftoyAOpNh7W9yj9qTnmWA6xLP3YXwIYo6ez5T+uDBU7h58pzt5uNiHsj2MLCqilnaIvvWE4sI+U8z2kyVdnWLMsf6AOMRSEVaEUmDRfCLOZif4GVDicPMEZYBbWB9Jf1IalDT2qKtDePesuTra42mzPV9gciPMEjutodvFpR/ts5UX5b0kxxOlGzFg9FQS85RHmnhJoMejs0sqv294/o3TTKCbNzNzH7EmJsFw=","layer_level":1},{"id":"70da6621-4cb5-4c38-b07c-6f60aed77743","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"通用构建指南","description":"build-process-guide","prompt":"创建通用构建流程的权威指南系统化地解析所有模块共用的构建机制。深入分析build-base-image.sh脚本的实现逻辑如何统一处理DOCKER_REGISTRY、VERSION、USE_PROXY等环境变量如何动态生成Docker镜像标签latest、版本号、仓库前缀以及如何执行docker build、docker tag和docker push命令。对比三个模块中构建脚本的异同提炼出可复用的构建模式。详细说明每个环境变量的具体作用和使用场景例如USE_PROXY=1如何启用中国代理加速DOCKER_REGISTRY如何指定私有仓库地址。提供脚本调试技巧如启用set -x跟踪执行过程。总结构建过程中的最佳实践包括镜像版本管理、构建缓存利用和错误处理机制。通过跨模块的综合示例帮助开发者掌握整个项目的构建体系提升自动化和可维护性。","order":5,"progress_status":"completed","dependent_files":"alpine-base/build-base-image.sh,kami-gateway/build-base-image.sh,kami-spider-monorepo/build-base-image.sh","gmt_create":"2025-11-09T23:07:27.830616+08:00","gmt_modified":"2025-11-09T23:10:30.434814+08:00","raw_data":"WikiEncrypted:ZHd6gDb1oAMJeik+Vv5fPoz/jX+zxb0mgqH/BhlMleNwOwjMdns3v8QxJft36VZZ1Ra2n2FjapsC21gS/q0slRh13bwOPBWPql3C1r0kfzTmG5aiClK0KQ4Rrk38ygcFlPllzAYU/Y496RyCVgc9ZG2LFFVaNaLmZ5KE7j8JDMAnmFumc3KvD1bdFMKlPUKsK+yOhtgjd2Y50kmZ5qEMbBlPqKA4filJsyvjLVCWaUJpGsIep6W3UGr23j/oT8Ul0NhibQQA7w9gDSe5b7gkq05PFgw3PG1bkh26Ez9PppawPvJYFeK45LsFX0i/iM3sztoWXqwXISacDQvXWWX2vvkokqasHf15IUMBO2Thoa16VS/z0Rmmo1f8iKZsxXEVWZ02ySQ+0mMfp81cK/y5cCD4wHbWqHvMZI5vaGwvfvXs9WOnsy86e7xdtkGcKuagP44lnRRQ9Kme6V/h/A+Obpj/SZB1deaWE1MDFQb0j0lboo9OFaJhfknW4rSv7IdEQNESoqM/aRtGy/Jdhp30zJkOLw1yZMQOT2Q/IDEd3s/KYOwYT8ybRKzQPkuJOOCL1H4F9TJz5k5VLs0iK/gQSjkiPePoWLF8uuMpme4mr4EONmMMZoEuKxb6QC6F/DWBfPrZBA2cyTz6quDByNHqPntvHIIY/s4Sc2TzsLqeF5ZgnYI8JClqRL7uW8UFH6384d3JLPBpgHW0+YBdiVRl3lTpHQWIMOxAw7GOA4FBCAXu+YoAk6/mUhMiFJhdgu7lMZpZXNgGO4NAb5N3Yg/RN3V+My2mHr8GSgPSQUWBXGRNhAG5LA1vOOCe7iJfbZuPTxYP77RRvnhFdIvTbIp1ZVegrMoFN8I8m3rg52eL+MYejzpiBFQLPB/NodCa3fiPDyCC3uQiS73swQTNFQ6Gme+tVkzO+njdUi2WskRkEEIyFIu2uRtGfO9DatOdEjm+a5sI39A+x8JvGIWwa0F4hPUKL2cKyjRld+O33PSIQyNCr0NduPBCDchvxViKKfZAZTqm3xRzMJ9h3ZlkyGOPGAnIRSJtd/F8eOEfoADY3obrq8yRjePAWioA3uPwDu68nVscmcPRHDAZzLyULp2Bfe6w4OoMjFQI786+xvNZ7Rj2nk3oaG24GWRaYg0HPfFJy3dc3amx4ASICV94+h3CEdSRFnQF43qkkeGFctyBgVea6bx0a18EKvhNvKg/KRvB79r3LAF7mHJJD0yyoqPSbOD9CsEh4Lc4H2OCZZ9FSaI1YK99Hn70sxHDBkC7w0ynQEHIBIQaIhvoVMPV7ES7Acru7QUkeiym9UZFyIO6zd5SVIj6wYuxIWnMzyetdJG+8Cni+f0C62fzhq7BgVCKh+jpAMS9Aq7PGldAAhhdkKrQZJeE1bLZfHUH4abJgz0n0uxem5oVHUZVHO2GmHfkQ6RAt8tP8/GRYayzCLUbTdgrzKBf1149tc45QG5wZUDoC99QlVBuPraVrw0toDy7haJ7v+vj7Vh9694aFVVFSr3P9phlN9VnbJUfYkEG8WEDPZy4+09g7r0VvXXElIbO4NVxl6+OVk9+Fo99FATyJMCcBcSUzldtY/tOxQkR/MwGo8nhWh+pkYSVAK2xCeMtlPcJ0/VSanfFzxJ7ohBb5AAs4s+vtcTeN7p1qTk/kGUgaUQYRQygXR5Np4V2tWAfZaLkIFzUxFLohZuR5NjDWCYhaC/rH1LdaNZmEQmneH23IeFFTkmR1URgNmHxlYl4X0Zf1Mg5og99vUWaqE7lBHs="}],"wiki_items":[{"catalog_id":"7e3ebf37-1574-48e6-91fd-c38325ba1c0d","title":"alpine-base 模块","description":"alpine-base-module","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"68b7dc3f-a5a7-4730-81d1-38e8c2f88b98","gmt_create":"2025-11-09T23:09:00.383526+08:00","gmt_modified":"2025-11-09T23:09:00.385166+08:00"},{"catalog_id":"87858ac0-b4c3-45d6-b46e-5b9aa92027dc","title":"快速开始","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"5de39294-77a1-4f26-b9e5-8d22ab8a9499","gmt_create":"2025-11-09T23:09:18.772042+08:00","gmt_modified":"2025-11-09T23:09:18.775452+08:00"},{"catalog_id":"03f420dc-94ba-4438-939d-b3cbb95856eb","title":"项目概述","description":"project-overview","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"2ecaaf95-655f-4d6d-bb65-5b3a221d0e19","gmt_create":"2025-11-09T23:09:27.671667+08:00","gmt_modified":"2025-11-09T23:09:27.674249+08:00"},{"catalog_id":"70da6621-4cb5-4c38-b07c-6f60aed77743","title":"通用构建指南","description":"build-process-guide","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"3bf7ce2c-59b1-438f-ae79-28203309703a","gmt_create":"2025-11-09T23:10:30.429109+08:00","gmt_modified":"2025-11-09T23:10:30.435416+08:00"},{"catalog_id":"bed2c9b4-de63-4b03-8187-d62744475754","title":"kami-gateway 模块","description":"kami-gateway-module","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"12203115-71b4-4691-88bf-ab11564b9fe8","gmt_create":"2025-11-09T23:10:33.88887+08:00","gmt_modified":"2025-11-09T23:10:33.893734+08:00"},{"catalog_id":"3e5a6a0d-ff7f-445f-9d0a-2fe8bf1feb37","title":"kami-spider-monorepo 模块","description":"kami-spider-module","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"0b98aaa0-f8b6-4519-9e33-da448e5d46bc","gmt_create":"2025-11-09T23:11:10.921077+08:00","gmt_modified":"2025-11-09T23:11:10.925657+08:00"},{"catalog_id":"07c159d7-3fa1-4dca-a4ea-502f25f5b08c","title":"基础镜像构建","description":"kami-gateway-base-image","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"295c1192-6d0a-4dd0-9d9d-382ac911c205","gmt_create":"2025-11-09T23:11:27.961286+08:00","gmt_modified":"2025-11-09T23:11:27.965348+08:00"},{"catalog_id":"78097928-b28e-4f2f-9fef-370b9329d92a","title":"alpine-base 模块","description":"alpine-base-module","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"adc2875e-7302-4520-9bbd-8a5f67213877","gmt_create":"2025-11-09T23:11:54.502101+08:00","gmt_modified":"2025-11-09T23:11:54.505794+08:00"},{"catalog_id":"2fd9ad61-bf0f-4453-b139-5c069562d31d","title":"构建与使用","description":"kami-spider-build-usage","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"2a4ff51e-641d-4f66-99fd-c5cf3faf8d68","gmt_create":"2025-11-09T23:12:40.581208+08:00","gmt_modified":"2025-11-09T23:12:40.584636+08:00"},{"catalog_id":"c24099c1-6bfb-40ce-9315-6fbc1e8741d7","title":"Go依赖管理","description":"kami-gateway-go-dependency","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"30884903-1b75-4192-845c-61a90fc80d8b","gmt_create":"2025-11-09T23:13:09.420371+08:00","gmt_modified":"2025-11-09T23:13:09.422594+08:00"},{"catalog_id":"6160423e-0318-494a-afdf-c9f71305913d","title":"功能特性","description":"kami-spider-features","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"192594ea-bb47-4a29-b16c-b6782eafb53e","gmt_create":"2025-11-09T23:13:38.926036+08:00","gmt_modified":"2025-11-09T23:13:38.929724+08:00"},{"catalog_id":"3cd6b111-cd55-4414-9a4b-23c4ecdd4953","title":"kami-gateway 模块","description":"kami-gateway-module","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"603cb3a2-940c-4fb4-af92-1455c2e842f3","gmt_create":"2025-11-09T23:14:06.578094+08:00","gmt_modified":"2025-11-09T23:14:06.580304+08:00"},{"catalog_id":"269c6751-74e2-470b-aa81-73af9c865c7a","title":"配置选项","description":"kami-spider-configuration","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"8525a571-0ae0-4153-9ba5-23d2de726ef4","gmt_create":"2025-11-09T23:14:22.105667+08:00","gmt_modified":"2025-11-09T23:14:22.113918+08:00"},{"catalog_id":"645a2e40-6ce6-4b5d-967b-5ccc8e45f41c","title":"改进型应用镜像","description":"kami-gateway-improved-image","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"958d01c4-a4ce-441a-b1e6-464718390859","gmt_create":"2025-11-09T23:14:28.643639+08:00","gmt_modified":"2025-11-09T23:14:28.646075+08:00"},{"catalog_id":"c99b73ed-5093-4cbf-a45d-b1eee990f2d2","title":"CI/CD集成","description":"kami-gateway-cicd-integration","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"b75ef0b1-14eb-4602-a372-8bc28c154516","gmt_create":"2025-11-09T23:15:18.133845+08:00","gmt_modified":"2025-11-09T23:15:18.136915+08:00"},{"catalog_id":"779d5d86-9d89-456c-9f5b-7dc9e122f01e","title":"Playwright集成","description":"kami-spider-playwright-integration","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"b5946ba4-2b1f-431a-b8ea-87a1a62a6dff","gmt_create":"2025-11-09T23:16:41.808732+08:00","gmt_modified":"2025-11-09T23:16:41.813053+08:00"},{"catalog_id":"b88f3e9c-a57b-40bc-a946-71407634e380","title":"依赖管理","description":"kami-spider-dependency-management","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"4044ee70-4d92-48cd-9ea5-f437be453797","gmt_create":"2025-11-09T23:17:09.552861+08:00","gmt_modified":"2025-11-09T23:17:09.554471+08:00"},{"catalog_id":"f53cebe0-d1f4-4508-a612-12121007a602","title":"基础镜像构建","description":"kami-gateway-base-image","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"8cdcf2ee-6ed7-4ab6-96c8-82c39c3df207","gmt_create":"2025-11-09T23:17:28.957875+08:00","gmt_modified":"2025-11-09T23:17:28.962239+08:00"},{"catalog_id":"339675e9-e221-4ca5-9a18-b2390a6d1aee","title":"kami-spider-monorepo 模块","description":"kami-spider-monorepo-module","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"3883b336-0b91-405e-8c5d-fe6b5f98462e","gmt_create":"2025-11-09T23:17:32.61158+08:00","gmt_modified":"2025-11-09T23:17:32.615566+08:00"},{"catalog_id":"d989e9db-0336-45b5-bb9a-08c65211d8cb","title":"Go依赖管理","description":"kami-gateway-dependency-management","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"844ce3c6-c207-4f0f-9749-4a97ffb47912","gmt_create":"2025-11-09T23:17:52.27211+08:00","gmt_modified":"2025-11-09T23:17:52.275336+08:00"},{"catalog_id":"a26f150c-03d3-4768-9d40-9cf3981ff53a","title":"CI/CD集成与自动化","description":"kami-gateway-ci-cd-integration","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"407e4974-151b-443a-958e-bb4048b3a58b","gmt_create":"2025-11-09T23:18:03.547215+08:00","gmt_modified":"2025-11-09T23:18:03.550607+08:00"},{"catalog_id":"807c5414-dbc5-4fb4-98d1-34245f938219","title":"应用镜像构建指南","description":"kami-gateway-application-image","extend":"{}","progress_status":"completed","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","id":"e3d57446-2281-49ee-84bf-50106e329c6e","gmt_create":"2025-11-09T23:18:39.24271+08:00","gmt_modified":"2025-11-09T23:18:39.247106+08:00"}],"wiki_overview":{"content":"\u003cblog\u003e\n# 项目综合分析报告\n\n## 1. 项目介绍\n\n该项目是一个基于 Docker 的容器化基础镜像构建系统,主要为多个微服务或应用提供标准化的基础镜像。项目包含三个核心模块:通用 Alpine 基础镜像、Go 语言网关服务基础镜像和 Python 爬虫平台单体仓库基础镜像。其核心目标是通过统一的构建流程和优化配置,提升开发效率、部署一致性与运行时性能。\n\n项目主要服务于后端开发团队、DevOps 工程师以及微服务架构下的服务维护人员,适用于需要高可移植性、轻量化容器环境的生产场景。\n\n## 2. 技术架构\n\n### 组件分解\n\n- **alpine-base**:提供一个经过优化的通用 Alpine Linux 基础镜像,集成中国镜像源、时区设置、常用工具及自定义证书。\n- **kami-gateway**:基于 Go 语言的 API 网关基础镜像,预装 Go 构建环境与依赖管理,支持快速编译部署。\n- **kami-spider-monorepo**:面向 Python 的爬虫服务平台基础镜像,集成 FastAPI 框架、Playwright 浏览器自动化工具及完整的依赖链。\n\n### 设计模式\n\n采用“分层构建 + 共享基础”的设计思想,各子项目独立但共享构建脚本结构(`build-base-image.sh`),并通过 Docker 多阶段构建实现环境隔离与最小化镜像输出。使用非 root 用户运行容器以增强安全性,并通过环境变量控制构建行为(如代理、版本等)。\n\n### 系统关系与数据流\n\n```mermaid\nflowchart TD\n A[开发者] --\u003e B[执行 build-base-image.sh]\n B --\u003e C{选择构建目标}\n C --\u003e D[alpine-base]\n C --\u003e E[kami-gateway]\n C --\u003e F[kami-spider-monorepo]\n D --\u003e G[Docker Build]\n E --\u003e G\n F --\u003e G\n G --\u003e H[生成基础镜像]\n H --\u003e I[推送至私有/公共 Registry]\n I --\u003e J[CI/CD 或生产环境拉取使用]\n```\n\n## 3. 关键实现\n\n### 主要入口点\n- 构建脚本:`alpine-base/build-base-image.sh`\n- 镜像定义:`alpine-base/Dockerfile.base`\n- Go 模块配置:`kami-gateway/go.mod`\n- Python 项目配置:`kami-spider-monorepo/pyproject.toml`\n\n### 核心模块\n- **Dockerfile.base**:定义各基础镜像的具体构建步骤,包括系统依赖安装、用户创建、工作目录设置等。\n- **build-base-image.sh**:统一的构建入口脚本,负责镜像构建、打标与推送逻辑。\n\n### 配置方式\n通过环境变量如 `DOCKER_REGISTRY`, `VERSION`, `USE_PROXY`)实现灵活配置,支持本地测试与生产部署之间的无缝切换。\n\n### 外部依赖\n- Go 模块依赖:由 `go.mod` 管理,涵盖 Beego、Sonic、OpenTelemetry 等高性能库。\n- Python 依赖:由 `pyproject.toml` 和 `uv.lock` 管理,使用现代工具链 UV 进行依赖同步。\n\n### 集成点\n- 私有镜像仓库(默认 `git.oceanpay.cc/danial`\n- OpenTelemetry 监控体系\n- Playwright 浏览器自动化集成\n- 中国镜像加速(阿里云、清华源)\n\n### 组件关系图\n\n```mermaid\ngraph LR\n A[alpine-base] --\u003e B[kami-gateway]\n A --\u003e C[kami-spider-monorepo]\n B --\u003e D[Go 应用容器]\n C --\u003e E[Python 爬虫服务]\n D --\u003e F[(私有 Registry)]\n E --\u003e F\n F --\u003e G[Kubernetes / Docker Swarm]\n```\n\n## 4. 核心功能\n\n### 功能概述\n- 提供轻量、安全、可复用的基础 Docker 镜像\n- 支持多语言环境Go、Python的服务部署\n- 内置中国镜像加速与证书信任机制\n- 支持 OpenTelemetry 分布式追踪与监控\n- 集成 Playwright 实现无头浏览器爬虫能力\n\n### 实现亮点\n- 使用 `uv` 替代传统 `pip`,显著提升 Python 依赖安装速度\n- 所有镜像均以非 root 用户运行,符合最小权限原则\n- Playwright 浏览器在构建阶段预安装,避免运行时延迟\n- 构建脚本中集成镜像大小输出,便于性能监控\n\n### 功能状态图\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e 构建开始\n 构建开始 --\u003e 镜像构建: 执行 build-base-image.sh\n 镜像构建 --\u003e 标签生成: 成功\n 标签生成 --\u003e 推送镜像: 非本地 Registry\n 推送镜像 --\u003e 构建完成: 成功\n 构建完成 --\u003e [*]\n 镜像构建 --\u003e 错误: 失败\n 错误 --\u003e [*]\n```\n\nSources:\n- [build-base-image.sh](alpine-base/build-base-image.sh)\n- [Dockerfile.base](alpine-base/Dockerfile.base)\n- [go.mod](kami-gateway/go.mod)\n- [pyproject.toml](kami-spider-monorepo/pyproject.toml)\n- [Dockerfile.base](kami-gateway/Dockerfile.base)\n- [Dockerfile.base](kami-spider-monorepo/Dockerfile.base)\n\u003c/blog\u003e","gmt_create":"2025-11-09T23:05:46.414743+08:00","gmt_modified":"2025-11-09T23:05:46.414743+08:00","id":"54adec79-d720-4f87-b583-c07fe23293f9","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2"},"wiki_readme":{"content":"No readme file","gmt_create":"2025-11-09T23:05:08.59952+08:00","gmt_modified":"2025-11-09T23:05:08.59952+08:00","id":"994ae718-fa12-4385-aafd-1fbd75fe8b4c","repo_id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2"},"wiki_repo":{"id":"7344f110-a8d0-446b-a0f4-7d8e507bccd2","name":"docker-registry","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── alpine-base/\\n│ ├── README.md\\n│ └── build-base-image.sh\\n├── kami-gateway/\\n│ ├── README.md\\n│ ├── build-base-image.sh\\n│ ├── go.mod\\n│ └── go.sum\\n└── kami-spider-monorepo/\\n ├── README.md\\n ├── build-base-image.sh\\n ├── pyproject.toml\\n └── uv.lock\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted:sk7rVrOm0cPExtlhTWA9t5pbk3JCOSgpdQA9hLu5sLq/9+7nqi8XPjxqQg9urRK9fW6xHHJp9rEmjtPY6UZS55vCRNI4SOI5YmhAFK0OcyjAuVT8LZwCBDHjTIx+jSZOHPGhBbPO04Hx6P+sBweIlhdcDvzRTf6BHNQWKVwB/YN6O5ty+TnIMrWx6wkuPptZpdxnikRdGVSqE3tfRIUKNo2vdEDAXhArSzZStETFbsKrOJ/aA3FKPRgy1zFrC5uzS9ga0eXeZDi/UvMbgdox0SkR8eeWsCh96r+d+UWGmNbI4zXWG7d55gllTAOCLkaXoK/mtO2HdFAdfcmlC7Mt3FAgsIyGJ+eWsIZRcQdnxseiWH2axax/vKo4Ks54QLqCHgAiG2oa6QneUfcYphOmsng0VZ0BX4OUHWnwIsGUWFDHyhQ9qq4CQ8gxsr3QMMfuftq+wSIXgduRsBmASojsOFKs7JZHtHSmpjNYdj6qZHbWlL4w05t41iIF5bcd1X9UFKEXQ4RK/BWjjU0CM/bLzJc6Iptz6fpLUxuqmCdU0aLyplNIhg1BVAZmCKEXlXpEc4GkRxT7jHbJ1LUbnZIodaG431x2cG0r/q2Ed98h/g3eGvWM1SHjuoK2A8rlJPhseE/TLaowmq5uqgec2cXxHulEbM0jMWH9FBCdxMU2oneeJgXJI7FhCB9b0nHx6K9XjfAwnsVcIJdKuDj8WLPs+uuqGaYjtRW4VhmaN6oz9Fului9bv9JOeRvMlNpuUhbEE3IsqjqawZVOna1nvtTTCfr3sMdtUxQr4owDWcMEZ0r+PYPShGenoJY+vMIAmphx5vFxQtpOgmtZtD/Z/FHpJAAZKLPhBf0nY79EtpgLacYlGKiB71rKrb9J6rfQXhC3Z8W/zwyRIvmGCbGTu0y08oYlJGFWt8I1M+EKTo2wkJE8e4uSnK3a6wMev+zVwjG+wtLi6VxCd+e0yRTupqB2jJM1LVlreb+zqmQsanvpIKKH8FAMWe3/RNaPSLLeCYH+GPRwnNp8Lb5UoZgqHRTf8aQlmYwT0wmIlUMAfwUFy1LQpSmx8qgs3VABifxLBXIORTVoajclSMfE27gRk7C+x0yBxqgwsEFYt69ug/tI2rZCsP38Vp5U1NPqoHjK7wbbkTAdecKc+mvoqKWrzs6PrLYPZmef05Pcfgjg7zCcEFZ1x3+s+ALSAEwkE8mKnwdiXck1O6hgouU1QGSDRwSiZxdsbOwJwVVvtSnlEu9BkIPkJoT9HeQHfNErixXv6fqKG+HcSc28QhncD4cHOkZ9IBt+7nYqfNR59tlTOkoT+9/1c0DRYNEDtrLCy0TFMuP9m9FeGwu0MpWzc1usrbmBnFf/weTaHZ+W1A2cIaOsTI0mY1ja6XBtfE2LvjEeCJf4YsuKrdQbmNLb8cbCqgaqmFJXQ3BaIAcCyP7hcUS90orWroUpyNaiEA32vuRJ3dAXls6oNdkibcUVu8VqKIvFz8nhbdn4C+eF0eYa5NyatsBW5hv7xbmQCTw7olbBQHevO17nYtKe4wgmQF+Hh9sV0NMV+RrwHbFpIcoBwnkvyGC2kVCtr9RGaRkT1v3Vu84rN+dBj1nUhxXMBsnCWoqk86AuVdlXZ6GO8IFwQz4klRdpgQbo8P6tivexaX0ziXKrHAj6SG/5DWTqwglvTk1tn8fl+w37wALRvz6vUTVJ3ne4SxxPljF9uXdzI78pu+n+xTWq9Q1KxBMiTCq50Xa9/FmjwSzUthPtvZxwqqHgMb5keokahxpg6qRPbUgVVxsY8oWOuXty3FmvyBjmpRa+JaWl/YtOMOwDPkPkb3WIChf2uiqHUL54uYSL+fLUfqrhXuNoodKey7KplQDgxv4hJ7zS5dj9BE1kK1VsYwhsd0A4cvHQazH5Qiu7ZvmQ4c7SAI4GA8ISZE5SAiuoG8WVzTrJwq3OqQGNf4SShUFl9Z7tGghEUm1noK3Q/QolidrwMB4uloBJAjcRYeWvMVBSH2mT0MDZQe7MdbKXhWhDsWXPxW/BKRMf1Zt/TiN0HiGIgKOq0LOlctGSSPmSotObKIaC3wMBJX7owX8jBH4MaccDnJQ/kWSq4L/mSu6rC2QARzSHvx7dWUgHDZcD6i2cSOi+PECZcPYguC5Twyv9pWhYFztZ4GEPGEhTem98i6CdmzFXt2D51yNuWjAJ3st7LsdKTsclmWenQyxUSNaHCPf4BKRYIsD+W2yUDWcW0bvKad+t26+zlCYJuHidcqbICH6g4SKBKsMG61T9N+M7FEaqvdrgiwiZBS8SS49KLIU5X+kXM0aYhaIxYXScTqPU1FV282PKFE1myvwcKD476I7IAV0FTrQgh0H+6A8OH5Yf0bIXGMmaYKupW4MKwsECB1tnMd1ZBy/tM9d0TJoE2Vg2aV1KiLGfpJhK6mlT13QJbzGRTtp6CeH5RWURVywvKYSaqZuoq9sCQ28lVkqBMCMkQpmQfLdZVAASg4Bi7wrkbYPr08CxKTqZ0/5uwXRwxLfwNs2+HMSxZbBOCvxTAHO6xqnZGd4DQw6pReU8pKm8FYrWyCtLRkZ92n8+at/62Cs1zpTZ6sos3uX+tjTp1BHoL2uSm5g7PvAfZlwTQ3ACeOif3qmXQvjH45ELEE/ljlVYKscjmt4srFyt4aijvr2ozRAab7pKx2R+fPtrn1H0c7pWx5vFmXgh1keYoFfZ7ttcesAdSiSj7FitNj/1dcQd0aLNTbE4F+cS75OHEJnpa3l/4Dhbin75zq5enETUc8GmiuCpFXIC6/uabHaC3x+X4DP9cEI5eXf+gpmNkEErp4MK3dw4iP3Sq+mqmRxgyHg5be7sG4cOGdo2M/vH26IBCu5V2/lYMrzlz3RlXva9d+/vXbpu0vHdVwOClU2sFYEzUhAj0nzyVoej9Pj3FHe3Ujz8A2TPUhDKQcjUxK7fuITbKzzKo08b0tfLuLS5vnBAarnurNmw38F+NbGZbNGcehrXrGFQIwokTlT1DN/zhPGhyZjqiHILfFvMpVYAtL4lPCuBBGKrLHN1z56VDBGW1UTWwZcLUZLpWYu8IAZi5JYzXS/JGsH7QQfXuUaGQvwn7FZI92Oed0iz81m3lpyLXhqmIVCTaB5kWKxl+J123SFluKm8XB5gmiM+n6nrsqfJzrzJCvSB6joSLZOcxNYkCd+RmxcSvVF6qQiRDaJpokZk8Tzu1Mb/qZO9hr3kn5tFRzSDQLdRQ7PVzFIqt1BysAaIZbMxzHvW7cqn0JjngiwO4l1/nXTDKUqqcX3US0lPtJdzCF6L+Ncc3EnIaLd3OXSqDO87+W6gu35dFz3J4FNf9rj4cPgzPN59H69ofzWtZUq/Db2u/7gBuKF2MdkklVYWSSMVrT1H2+s4VcBygCGQ88xvE2zaUgKWBR5eMGaN1plzMzUwTqJlLeuYxuuEvOhtgFw0q1hK+ZRZNIgwiSlKawZiVboOyv4Ic2bOnISM2iBCVv8NViyQVOm7bZaJydyzQvryFQAi/CZeP4e6jDJk+cjLOrzyUd5h2RqJX8KPCMoj1yTkUNSlgnLA4OcVkFswmq0H60PJDmhPUIvdsGkLpEMh5rLCHcyodVNaEdLztlvtDlvnBoE0pdXYUQj/3ggBzRtPrOLJXpLn2zArpmI6LwfL5F244Fa35CXF4Z4AFriZzfvOzA30/MLqpiks496ATDWbby5fUFJAbFny7eoNjFQVD1yBH+f4qiUea1e3o8uMgdLClo2Kid3gU4yfgELNQhvdrh0gK7YkpnCYE2Pg7acODN2AnihUO2y2aDjuy8DLCKNZwGMus0F36VKelzyxcDz3l1sdCF1/hpv3mYrWQxVDsSnITz99UOHSucOD3Y2+SVCNr72PWSNKYnHTQ4kQ+xtTCPKO6DrFJgGZEiyn9ZVTfbwZyGMi/qVp9YLGAH6GWjn+hGgR8sYDKGgpDIICivLxtlZvytmzC9GAUqz1g/DEuVUEZHhZv3SEWZ9kV7jbgJukfpsLLNM2fQ5eVwgjri5pVTLP/x/jfsbwZEJNtqTyWU+QNR/HfhnldR8eQEhkAHY1hQoNlqKVk2ClsL6HxbYAb9vIZujAWfhXrva2k5LnkFOOUE4aWCuE99/IogdeLAA3O+Pu5PqwWk/f5abrGwBy5VWTYFwqzt1ciN7dmsgGiidVMblVYt1vc0oCkTljK999WsOvVcoShv1m0xd3GmwTFgUG8DGjqpyB2blmHJd+m/Undpo3hZIJ7+Oo1Dqkj+a2qY0WjPMn9FauSYK4Fdbs5Z/3Jfv0Go+zAZVmjiHxE/0+Zgnf8JV5Ddm/CSVVndgfIuMrC9eKmPnZ+BwBj1yd7cVJQPsQ3oMdRSM4facguzGQEb48TqgfXb3hRJMDd+Q0GDc2dlrZbhD7NrNNDYqL7+aMGz9YdGTy+Kya67BNHOulJV92UME9C60smYRl/Ay0atUH0arQhCaPym/D6ZkHekysVWonqAD+vlB5r9QRNqk71LoZ2+spx6plbE/Bf8/wiQEDcjpEE1v4/tLmbE2HJpkO1dC7GrPWZ3e4JHCIVBzZ4HfJTW5pecHUX1SxsKpG/iL6otLCx6jSEyXfFJF0yYDo+GUvzZj4Sb/wjAWYSFZah+qiuQox57+30zG/b4MyWogVjTnjJOSS5z1SiEadUFnDezUzNitSB4St1gfNAXh7NljbF/amkqGE72/JDznMGDZAFkPoUsVyf4vg9l6Gu0GTQkcYsc/IspepfMrR2yHtopAVmfarbDfatoqtSIBkX3/eiPeGg5O0TA/54Gy3mZ6mEgF4MQ29DeWbt3HHcSqP4w8Qg2IV6deErjdcZWeu0y9sGq6Xdp+7D4VsuNgtShOVNEkFCxxDQNvICEeqx5h/a53XIN+RybtOSXOaHu1PWuIeGxtGTF8UPnzfwJ9OmLZI2itEa8aZiTGJXjXUFIrVd9S8JeMBUY4k7Eu3HSoP/fuvLsSdLy3HD69ygUjkeJOp9GjQcr4QKmyN1YxINmLdOT3n6Slute4KEWvFeun1zmu9JHuzGyCdl0/NR3aSu2wx4bgoJgea9kzdMBibqF1222XT5tHo+6KJJcXhsFKgdmpHS3k6DlJfpVh4wLmbHlJI1sDf4kV+LBD9kFP5RMPavjNYhtROrAO7m6jHI1RbfS4NVMHMmSEwa1AwtuozkuvuCcE/cfcGSlsReINc5xRy8waWamdQtvH5fXp6WBcCyX5vgnBtpz9K4ytHTicF0/hJKHWmDCzHcKYqw1bEVOw+gG/EoVrM6mtbh6NCw/DT6uSYJ5XDfsekJYCC9uslLtVZKp3eQGO4WLeAy45KhDk3THz92zdZPB8SJw1I7W1Mk2Twxjk45yAM4frPeNljPDxqJfxL4lDYYCrsNvggAnqaE2gksquU9jjXMaqlbnSS5vXGWt7pcM+L+NvftzHRpiSDByIElHvFVG6kQKejVAzZqDSSCTxT1NIR75EeHtdSTojidNJRX8snihBrSSm0avC9nX/Oc/mE4AIQaMEsrgiUBRNW+rpNOj9exdH34dPj4z7xAMjrBAFgw0YcoNerelClGs0D/qDdrazzU8QLoStSEFbqM406Rtcr0buSYPhdyef1qXkeJTVWf3rXMLCRXdZyBUxMi5ijmSyDS0MNmjr6Ezg9Vpvq+ed+Wa8BLj4tFR4VGm9P2pBdK5va2l7p8HNkmfVwhoExU+toejmr/BMU1OvAMvoXYlT4Tw0wWcZgpvGadFOadZvoFZDOxTQoXMU5n9pd8fz8WeOGvlxTGiVz9PG29K8zQpgWz5m5601UyCC6me3fVNicylclIrjZZtk/chqFitj3EQZSbdwn6W4MulBpKYph767ruhHKkROoa+2CBYBINYTDNDuEjDMpo8jAnClIvRPK8148mlzDSkZJ+Iy82jEBbMAIZ61tZsukCZhnF2DIFkgkOJZ10vgkVOlLrMQLXOJEF9PCWXChS96o5/1oRg3Q0wYdPgIrY2tg9FAier2HerA/H+UugX4H5XbsiQCzf6wI2yHYRJxFp9ySQpUS//u3mUFPssj5S4+GEDcwiXMB+Lrw2PAVjs/+48WVTdfhfMzJtwakxL2749kru6To28t7Bcbw7zZsr3NG+BW8aT0WVGvB3iIfxI78irJqteSE1xr+4l0aLH3972dR/wXiAHFvPKM7FA9KsNccSvJMXR269MTInUcnywXrL9QP+8xDYAuoci81nMgMCpsT/VN3io7uTJJslcjcm39EsQIj7Fg4lgwGDa2aciLeoA8eyXz1GrpQF7JlnuA7vCjgXLC/DUr3kSyyUF/31wQcrMje4YY+kV2uMeOpmxwGfZAKkZ4SBezRBhfcWSkJv9UGNsYYw17aVzNTsfyZqNLOjArCnRu/vEvKroPJc/VfS1az34LMxMQqUX++FrVKtprjMBm9VMYbhBo9snsVrrY5Cmp6vfN/up9JTuOC0cAYm0lLKIA8Zo6BbXn9rE+XKkNM5IBvw6djIW+B6DhAxGoCmkUwgC85NL4fU7F51bwvSokiyryWwrzSq4zFOc90Dp6PGAEn0aJQtLoxaeIpo4RIg7ndHBDq8s7b+Qet7Uz0j//+2+1MQDZ6V2m4sDLjNSMvIoPk9TtoQFJTBHViD6E86IKI/B8MX7M7CkIzJphMoG5gHbQ5BUOP0002vKBIyIqn+0DtBjU8pNZT636Y45v8AIjBgMyJH+FkpMxLnga88zGnFi/0PMpaQZobUHO3jsu0dDe/XhD6f8nvfGbpjy/9BbGAB2DwZWDoliqeP9XEShCs99O/txSG1KA1vsQVUWr+wX/GhQQ0akWK0oSe1sEE8OR2YWdnwOsreBu/thmqMzOMdoN4PyKQNepGIafHXlewZBHB8chP1E0WYl81ZYuOE5Hge8lfR3ygWfi1iehKcpELYtKG+x19pJ5QWCfU9WDgKCX/qp78dPJpurDQO/9BeAbdn51ZbSxjJpHET1lWNJuobLdkaIqWyqNrIn61SU1NmT7Qe7oYwN7ZD87BQk78zCEjBpes3eG/wkev8Qe2wu4ydUFryGSQGRcdKu1BPJKPCF4elyKeC2tEBHUTdnnty92/VbkwUSJLV3uNHwp15mMvc5QJZECksD4G7rRJLmshM7h8S+39Z6/OlFOYc7zWO4v4nPa0bPpvbfPkD94ep4Ny2W11NwhsmSZeIVxJL3OOKD2CEpu2CWLj4I2XJ0kc+qLSwr32B5jcaXqYe5a5O97YdRDqKVD5+ChYbRG9Y58gs0bGLPCY4b7MGpzkJPxs0/OjopkvUugEE6uvKGTNtE7ZRWjfHG42bIqv/UZLaxPDmTfRiu357AjQxCpfN/gxSDXUzPH+NT75dkCi/ep2aZOscsP7+tXZq1w/sHObuc1rU/CUoqldv5OpiWQGlA/HPvGiieTqp7IRaXnh3gBdgnZe6GrDDXoJbuAFrZKkHiuteAfmHKhDVgN+FFxYIhUJLmul0XjNObS0mBGq5nyvYq75JDOe+bO5Q+criVuGGR11sH8y43tTDKvh83UUUkW014N4OfYh0+osrmw+Vu61HIfjhSf0WmXV4SyE3aoMl5mACSTsAPnE+IjbKiXKyklv/ZKoxXpPrxmavS+6/0fYgEjRU65xBoeQMSFLAtz8oHOWTCeQ3ZFvqya9dq6abPqsLp7QfiYXtaXbO9TLfACr7334vPQmY1957scf0YinNIMCTNqwaB4kUtH/sMC7NC3BMfb7mTYjnbye97FO/LGuU4eacizGekuOJHHlVfVrknI+NsbLdatR9JEXX7wGR6zv2KCKMxSoXujDGVddXcwg1JYNLYcEaKkucfE+qNipMvyQG502wbhGiiQ9Ohf1MONNsMlZTLF/fpXHtm0KCliSj4+JU7gtwvOKtx8EyGcN9JvcNsgfuBVrMEHogHV9yv3e2IY0mnj+5y36Xx1o9/DNTaxWZ60zYQsXSBYTzYQ+tefyzjhKW2Pbui+GDPm6aoBg98yOh4eIBMOsYuUj9Pjy51jAAN0smkyB2PcPhGII0Hs7Hc3GIw49BslrtvHs+wzU7Hb0SZeDqB5ZkpbQb9aSYpPL5DC51RVHmg7ChPEbCc9AGGtc7RtdP5uFpRnf9J5hBs9jyfI66BZIech8YFnT1FuX4xSWCCmsGT6m8z/aq0RiuHWyBFf9gqIOM38ezXgX+Lsm2Zhjw3+rUH/SjDTZoHQOfuUWpGltaLBJANzRI0X6N2xHSH6uIJiAJNxUPtN9znb7RzqlglggzpAc0DorVKrfghdMemGpblMz2mTpJIdBb9AvQpisiIxzfMkccB3/cnFsOSbtt618GQ4KlG2I5mCXB75I7GJnkBHZluw//vZGx45MNLbx7AQoIgJmibv22x8eLePVBehCHBHmOPJE+TOf37LImpUQXzH0haRfSaiAJBIO2Edx/7tP+/291x8BaFGySXlwulBX4A3gGcMuSB9YWlnbCaXiYPtahoLC6azJwg2av8AJQIw+ShkFWxXRythqFc4EghYqZ+ZkY6jWboApm6ji6Ehtaah99rKSfRY0I7NMWFDNcMd4AC5w7LOlRAdIQjYDlS6UIPHnENF3TuLpiw2VgEGwCBK3UdeKGODps5j6LUalnEuHiKCMWh6oHTPbuiKY3ol4pAVWC0YVhtI7AZEo2ln0dI9MKEq4VrRkntnyeieHtuicVN2wHVUVy3AWJmxMiPdVPp4u++q6fbGuH18/SFbhNInNFAXd4ZL+sKL2g7m0XR/jL7CBAg0MnXXNcFryx/grxgORoaR0NEx4rpnQniIHlVvLJX914FN5NPeLk1mqinAnrsBRflUNvnZ5D0RC8gAINnUF4RCpWZKjLN0vQ72xQsnI/0wuIBHyGipp9q0Z2ZOeGt0iGhY91VgE7BJsSZYjS13tWs3WEIjxCWpwYtsZR3IZDik2uPoBJn6L4a2JYbsCOqE/zBVRn8Zg6jiNIql0gSF/mXklHnvdaRZz4A/YbVtQes9BO1YlGZgN4Akk4o/mtwkyVOqCjUv1oQnBEvqtrGmTPaR4Dp6XCh1whKNIvRXJRF7wMuQ247aaMZMW5Ai0Jfs4LwDxbVLsM6IV1+4cKo10ASst0l9m/3iizFwh79OJq1kh1HbWgJg/CpGBgi7RngbCkYznaxI75OCL2Sv+ivnMlgp7ukA84WJCPqWxH4m1zy//ODpNDs/skYnCtoeE2rBAWQfexo4dCqQLsWOU1bfNRK4cYJsbiogIGLu9KIiL59pN4DI17TZ4O6mvsV5ZPC/30XAiWOzzmCa3cvZetPOnU/7B6NvP7on05Pcz7Z7WekrvOvkntG+KaG9agQKBjsbSj20XyLcG/albhf648JzTb6mI/fzzbNAXed7VZuoW014rkirGhwRee3baKLg/n9/47/qJXwZ+qKi/Zg1S1tP+VKHha5RchA0jGmPHcwMpw7UkOr77bBloyZ5AHCyOv+1NC8fh+bqZuwMqE5KaexwP74VXoSKtNKuENZ6g2gt3WeMYqUaF46vSsaHLU6efD43ynR1yrkR1zGp+k8Mnc6Wgc0qsKdH3FbKpJ+UAnBX1gI34xMui0zXNw5QQ4/M1jOzRXlZphCPI5flUCuNsd0Q9hQZYnlIW70jYZHxB0vfBFN52o1rRY6x1lbTjAMx0AxieBBwBckW/W3seHO+1woePmpgeIEdSmEMG3NzmiGcmP+L6pdf+t+GINnaya6uHWYdc38DrMk0u0EtgSPvIAGzXxL/FFTvHR+8uG/c5l4SO8X4LrFtAwGDvPrpy/oBy9ukhoYKedtFYcQBUuasgrAM7WkSt1F7uV0ypk/AGQmmL8XHR2nBkxnKJLZlZHQLmmTE4+B0nkg6ORh0O11G0tbYnk2mjKRmdHfL13zOFi25jFIL4Vclh6hFVpDYF7ZTi6RODe0ClNrni1ZWL0tkeDl+Lv4RIC13YwFz6hFNvv7aHPA3TQKZl1bwxES0j+daryK7WxV/EI2CbCnw5L4FVZdYYtva643saqKHW/8A1Azpc05yW/BZWGYvcuHSZWy2EQiPUIEN4wwJa1ZFj3NL/tmYg8fSKrCgYNrQHDfWXTSNbShjspyiZ/GN1eQSG1/+vJNqsgZDl8vrd33DNP1BfzGuXaDe2f7kgA7vJHTIKYm9IOYmIJPs8BCOpWcdO7mK4OBtNTiV/G7w+TNz/P9cm7thYb7XhaOvYl+cWXLS8Zn9baS8g517GRLC3KTxx/Gbs5XF+90G40G+YrM9j6U03ANWOoMXXcYVe948wr0d5yqXub8Jd1c83CGAHxoqzhv2Cgnl4KZ5sc2aZnOBDdw5pTbyRJKk93E3NTIJNw72K/BCr07jSGkyfmTOTTXavbex29dhSTewUABQzQmPIgMgQzuvHuipkFsYW53+pUcJwe/WCn7MOaUgzGv3tjLIMZKlvtgElZFOIdi9rDuDddMVFUEAfzWo0tVmymx/PHa0WzAmXynSGWGMwpmjtsQodKY2kv2uTMbTGWbj6PtpE3hJL1ooot1PHa7j1fp4zcX6ghxrBEWb2aM7dJQEO6t3fYSid5LUU2ShXglXUx2BTWT3QXQWxhmCr3JvrcNPotYHDL78ewwYdUO7PrqRmR+MzaVabAB4Tn2YujVeZywCINpjEpN0qxepgYXwGWgcBHnzD","recovery_checkpoint":"wiki_generation_completed","last_commit_id":"a26ab5f952814fa543ac5f6b00d5b050d21a6918","last_commit_update":"2025-11-09T23:02:43+08:00","gmt_create":"2025-11-09T23:05:06.944566+08:00","gmt_modified":"2025-11-09T23:18:39.330641+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"master\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"\"}"}}