本镜像是一个轻量级代理服务,专为全球基因组与健康联盟(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接口)两种开发方式。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务