如果你使用 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-browser-runtime 是一个集成了 Node.js 环境和浏览器运行时的 Docker 镜像,专为合成监控(Synthetic Monitoring)场景设计。该镜像提供了执行自动化浏览器测试和模拟用户交互的完整运行环境,可用于监控 Web 应用性能、验证前端功能完整性以及执行定时自动化测试任务。
bashdocker run --rm synthetics-node-browser-runtime [测试脚本路径]
bashdocker run --rm -v $(pwd)/tests:/app/tests synthetics-node-browser-runtime /app/tests/monitor.js
| 环境变量 | 描述 | 默认值 |
|---|---|---|
BROWSER_TYPE | 指定使用的浏览器类型 (chrome/firefox/edge) | chrome |
HEADLESS_MODE | 是否启用无头模式 (true/false) | true |
PAGE_LOAD_TIMEOUT | 页面加载超时时间(毫秒) | 30000 |
SCREEN_RESOLUTION | 模拟屏幕分辨率 | 1280x720 |
USER_AGENT | 自定义User-Agent字符串 | 浏览器默认 |
PROXY_SERVER | 指定代理服务器地址 | 无 |
PERFORMANCE_LOGGING | 是否启用性能日志记录 | false |
bashdocker run --rm \ -e BROWSER_TYPE=firefox \ -e HEADLESS_MODE=false \ -e PAGE_LOAD_TIMEOUT=60000 \ -v $(pwd)/tests:/app/tests \ synthetics-node-browser-runtime /app/tests/performance-test.js
yamlversion: '3.8' services: synthetics-monitor: image: synthetics-node-browser-runtime environment: - BROWSER_TYPE=chrome - HEADLESS_MODE=true - PERFORMANCE_LOGGING=true volumes: - ./synthetic-tests:/app/tests - ./results:/app/results command: /app/tests/ecommerce-checkout.js restart: unless-stopped
javascript// simple-monitor.js const { browser } = require('synthetics-runtime'); async function runTest() { // 启动浏览器 const page = await browser.newPage(); try { // 设置视口大小 await page.setViewport({ width: 1280, height: 720 }); // 访问目标页面 await page.goto('https://example.com', { waitUntil: 'networkidle0' }); // 记录页面加载时间 const loadTime = await page.evaluate(() => { return performance.timing.loadEventEnd - performance.timing.navigationStart; }); console.log(`页面加载时间: ${loadTime}ms`); // 截图 await page.screenshot({ path: '/app/results/screenshot.png' }); // 简单交互示例 await page.click('a[href="/about"]'); await page.waitForNavigation({ waitUntil: 'networkidle0' }); } finally { // 关闭浏览器 await browser.close(); } } // 执行测试 runTest().catch(console.error);
性能监控模式
启用详细性能监控:
bashdocker run --rm \ -e PERFORMANCE_LOGGING=true \ -e OUTPUT_PERFORMANCE_DATA=/app/results/performance.json \ -v $(pwd)/results:/app/results \ synthetics-node-browser-runtime /app/tests/performance-monitor.js
定时任务配置
结合 cron 实现定时监控:
bashdocker run --name synthetics-cron \ -v $(pwd)/tests:/app/tests \ -v $(pwd)/cron:/etc/cron.d \ synthetics-node-browser-runtime \ cron -f /etc/cron.d/monitor-cron
其中 monitor-cron 文件内容:
*/5 * * * * root /usr/local/bin/node /app/tests/monitor.js >> /var/log/synthetics.log 2>&1
yamlversion: '3.8' services: synthetics-monitor: image: synthetics-node-browser-runtime container_name: web-synthetics-monitor restart: always environment: - BROWSER_TYPE=chrome - HEADLESS_MODE=true - PAGE_LOAD_TIMEOUT=45000 - TARGET_URL=https://example.com volumes: - ./tests:/app/tests - ./results:/app/results - ./logs:/var/log/synthetics command: /app/tests/main-monitor.js networks: - monitoring-network networks: monitoring-network: driver: bridge
yamlapiVersion: batch/v1beta1 kind: CronJob metadata: name: synthetics-monitor spec: schedule: "*/10 * * * *" jobTemplate: spec: template: spec: containers: - name: synthetics-monitor image: synthetics-node-browser-runtime env: - name: BROWSER_TYPE value: "chrome" - name: HEADLESS_MODE value: "true" - name: TARGET_URL value: "[***]" volumeMounts: - name: test-scripts mountPath: /app/tests - name: results mountPath: /app/results volumes: - name: test-scripts configMap: name: synthetics-test-scripts - name: results persistentVolumeClaim: claimName: synthetics-results restartPolicy: OnFailure
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务