如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
synthetics-node-api-runtime 是一个预配置的Node.js运行时环境,专为合成监控(Synthetic Monitoring)API脚本设计。该镜像封装了稳定的Node.js环境及合成监控所需的核心依赖,旨在简化API监控任务的部署流程,使用户无需手动配置Node.js环境和依赖,即可快速部署并执行API性能、可用性监控脚本。
axios、node-fetch等HTTP客户端,moment时间处理库),无需额外安装。通过docker run命令快速启动监控容器,挂载自定义脚本目录并配置环境变量:
bashdocker run -d \ --name synthetics-api-monitor \ -v /path/to/your/scripts:/app/scripts \ # 挂载本地脚本目录到容器内 -e API_SCRIPT="monitor.js" \ # 指定要执行的监控脚本文件名(位于/app/scripts下) -e MONITOR_INTERVAL=60 \ # 监控间隔(秒,默认60) -e LOG_LEVEL="info" \ # 日志级别(默认info,可选debug/warn/error) synthetics-node-api-runtime
创建docker-compose.yml文件,定义服务配置:
yamlversion: '3.8' services: api-monitor: image: synthetics-node-api-runtime container_name: api-monitor volumes: - ./scripts:/app/scripts # 本地脚本目录(存放monitor.js等文件) environment: - API_SCRIPT: "payment-api-monitor.js" # 自定义监控脚本 - MONITOR_INTERVAL: 30 # 每30秒执行一次 - TIMEOUT: 5000 # API请求超时时间(毫秒,默认5000) - TARGET_API_URL: "https://api.example.com/payment" # 目标API端点(可在脚本中读取) restart: always # 容器异常退出后自动重启
启动服务:
bashdocker-compose up -d
| 环境变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
API_SCRIPT | 要执行的监控脚本文件名 | index.js | 自定义脚本名(需位于/scripts目录) |
MONITOR_INTERVAL | 监控执行间隔(秒) | 60 | 正整数(如30、120) |
LOG_LEVEL | 日志输出级别 | info | debug/info/warn/error |
TIMEOUT | API请求超时时间(毫秒) | 5000 | 正整数(如3000、***) |
NODE_ENV | 运行环境 | production | development/production |
挂载的脚本需遵循以下规范,以确保容器正常执行:
脚本需导出一个默认异步函数,接收环境变量配置作为参数:
javascript// /path/to/your/scripts/monitor.js 示例 module.exports = async (config) => { const { TARGET_API_URL, TIMEOUT } = config; // 从环境变量获取配置 const startTime = Date.now(); try { const response = await fetch(TARGET_API_URL, { timeout: TIMEOUT }); const responseTime = Date.now() - startTime; // 输出结构化日志(容器会自动收集) console.log(JSON.stringify({ timestamp: new Date().toISOString(), url: TARGET_API_URL, status: response.status, responseTime: `${responseTime}ms`, status: "success" })); } catch (error) { console.log(JSON.stringify({ timestamp: new Date().toISOString(), url: TARGET_API_URL, error: error.message, status: "failed" })); } };
脚本需放置在挂载目录(如./scripts)中,容器启动时通过API_SCRIPT环境变量指定文件名。
容器日志默认输出至标准输出(stdout),可通过docker logs命令查看:
bashdocker logs -f api-monitor # 实时查看日志(-f 跟随输出)
若需持久化日志,可配置日志驱动(如json-file、journald)或集成ELK、Promtail等日志收集工具。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务