
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是一个轻量级代理服务,专为全球基因组与健康联盟(GA4GH)工作流执行服务(WES)设计,核心功能是在WES请求的处理流程中注入自定义中间件。通过该代理,用户可灵活扩展GA4GH WES服务的功能,如添加认证授权、请求日志记录、数据转换、流量控制等自定义逻辑,而无需修改后端WES服务本身。适用于需要定制化WES请求处理流程的科研机构、生物信息平台及***健康数据处理系统。
/service-info、/runs、/runs/{run_id}等bashdocker pull [镜像仓库地址]/ga4gh-wes-proxy:latest # 示例:docker pull ghcr.io/example/ga4gh-wes-proxy:v1.2.0
bashdocker run -d \ --name wes-proxy \ -p 8080:8080 \ # 代理服务端口 -e WES_BACKEND_URL="http://wes-backend:8000" \ # 后端WES服务地址 -e LOG_LEVEL="info" \ # 日志级别(debug/info/warn/error) -v ./middleware-config.yaml:/app/config/middleware.yaml \ # 挂载中间件配置文件 [镜像仓库地址]/ga4gh-wes-proxy:latest
yamlversion: '3.8' services: wes-proxy: image: [镜像仓库地址]/ga4gh-wes-proxy:latest container_name: wes-proxy ports: - "8080:8080" environment: - WES_BACKEND_URL=http://wes-backend:8000 - PROXY_PORT=8080 - LOG_LEVEL=info - HEALTH_CHECK_INTERVAL=30s # 健康检查间隔 volumes: - ./middleware-config.yaml:/app/config/middleware.yaml - ./logs:/app/logs # 挂载日志目录 depends_on: - wes-backend restart: unless-stopped wes-backend: image: ga4gh/wes-ga4gh:latest # 示例后端WES服务 ports: - "8000:8000"
环境变量
| 参数名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
WES_BACKEND_URL | 后端WES服务基础URL | 无(必填) | 符合GA4GH WES规范的URL |
PROXY_PORT | 代理服务监听端口 | 8080 | 1-65535 |
LOG_LEVEL | 日志输出级别 | info | debug/info/warn/error |
MIDDLEWARE_CONFIG | 中间件配置文件路径 | /app/config/middleware.yaml | 容器内文件路径 |
HEALTH_CHECK_PATH | 健康检查接口路径 | /health | 有效的HTTP路径 |
HEALTH_CHECK_INTERVAL | 健康检查间隔(容器内) | 30s | 如10s, 1m |
中间件配置文件格式(YAML)
yaml# middleware-config.yaml示例 middlewares: - name: "logging" # 内置日志中间件 type: "logging" config: log_path: "/app/logs/wes-proxy.log" log_format: "json" # text/json include_request_body: true # 是否记录请求体 include_response_body: false # 是否记录响应体 - name: "jwt-auth" # JWT认证中间件 type: "auth.jwt" config: jwks_url: "https://auth.example.com/.well-known/jwks.json" required_claims: # 必须包含的JWT声明 - "scope:wes.execute" exclude_paths: # 排除认证的路径 - "/service-info" - name: "request-validator" # 请求验证中间件 type: "validation" config: schema_path: "/app/schemas/wes-request.schema.json" # 自定义请求JSON Schema
启动代理服务后,访问健康检查接口:
bashcurl http://localhost:8080/health # 预期响应:{"status": "healthy", "backend_connected": true}
验证WES服务代理:
bashcurl http://localhost:8080/service-info # 应返回后端WES服务的service-info响应,并包含X-Proxy: ga4gh-wes-proxy头
如需开发自定义中间件,请参考官方GitHub仓库的https://github.com/%5B%E7%BB%84%E7%BB%87%E5%90%8D%5D/ga4gh-wes-proxy/blob/main/docs/middleware-dev-guide.md%EF%BC%8C%E6%94%AF%E6%8C%81Python%EF%BC%88%E9%80%9A%E8%BF%87Flask%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%8E%A5%E5%8F%A3%EF%BC%89%E5%92%8CGo%EF%BC%88%E9%80%9A%E8%BF%87HTTP Handler接口)两种开发方式。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务