
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
node-crossdock 是基于 Node.js 环境的集成测试专用镜像,专为跨服务(Cross-Service)集成测试场景设计。该镜像提供了轻量级的 Node.js 运行时环境,并集成了 crossdock 测试框架的核心能力,支持开发者在微服务架构中快速构建、执行跨服务交互的集成测试用例,验证多服务间的接口兼容性、数据流转及业务逻辑正确性。
拉取镜像
bashdocker pull node-crossdock:latest
运行测试容器
基本命令格式:
bashdocker run -it --rm \ -v /path/to/local/test/scripts:/app/tests \ # 挂载本地测试脚本目录 -e TARGET_SERVICE_URL="http://service:8080" \ # 目标服务地址 -e TEST_TIMEOUT=30s \ # 测试超时时间 node-crossdock:latest \ npm run test /app/tests # 执行测试命令(假设测试脚本入口为 /app/tests/index.js)
说明:
/path/to/local/test/scripts:本地测试脚本目录,需包含 crossdock 测试用例(如使用 mocha、jest 等框架编写的测试文件)。mocha /app/tests、jest /app/tests)。| 环境变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
TARGET_SERVICE_URL | 待测试的目标服务基础 URL | http://localhost:8080 | http://user-service:8080 |
TEST_TIMEOUT | 单条测试用例超时时间 | 30s | 60s |
CROSSDOCK_LOG_LEVEL | 测试框架日志级别(debug/info/warn/error) | info | debug |
TEST_SCRIPT_ENTRY | 测试脚本入口文件路径(容器内路径) | /app/tests/index.js | /app/tests/integration.js |
NODE_ENV | Node.js 运行环境 | test | production |
适用于多服务集成测试场景(如测试 node-service 与 db-service 的交互):
yaml# docker-compose.test.yml version: '3.8' services: test-runner: image: node-crossdock:latest volumes: - ./tests:/app/tests # 挂载本地测试脚本 environment: - TARGET_SERVICE_URL=http://node-service:3000 - TEST_TIMEOUT=45s - CROSSDOCK_LOG_LEVEL=debug depends_on: - node-service - db-service command: npm run test /app/tests node-service: image: your-node-service:latest # 待测试的 Node.js 服务 environment: - DB_HOST=db-service - DB_PORT=5432 depends_on: - db-service db-service: image: postgres:14-alpine # 依赖的数据库服务 environment: - POSTGRES_USER=test - POSTGRES_PASSWORD=test - POSTGRES_DB=test_db
使用方式:
bashdocker-compose -f docker-compose.test.yml up --abort-on-container-exit
测试脚本需遵循 crossdock 测试框架的基本规范,典型结构(以 mocha 为例):
javascript// /app/tests/integration.js const { expect } = require('chai'); const axios = require('axios'); describe('Node Service Integration Test', () => { const targetUrl = process.env.TARGET_SERVICE_URL; it('should return 200 when calling /health', async () => { const res = await axios.get(`${targetUrl}/health`); expect(res.status).to.equal(200); expect(res.data.status).to.equal('ok'); }); it('should create user via POST /users', async () => { const res = await axios.post(`${targetUrl}/users`, { name: 'test' }); expect(res.status).to.equal(201); expect(res.data.id).to.be.a('string'); }); });
axios、chai),建议在本地测试目录中添加 package.json,并通过 volumes 挂载 node_modules 目录(或在镜像构建时预安装)。docker network 或 docker-compose 自动网络),确保 TARGET_SERVICE_URL 可访问。--memory、--cpus 限制容器资源,避免影响其他服务。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务