
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
cwl-WES(前称:WES-ELIXIR)是一个基于Flask/Gunicorn的应用,使用Connexion实现GA4GH工作流执行服务(WES)OpenAPI规范。它允许客户端/用户通过兼容GA4GH任务执行服务(TES)的后端(如TESK或Funnel)在云中执行CWL工作流。用户可提交工作流执行请求、列出历史运行记录、查询单个运行的状态和信息。该服务利用cwl-tes解析CWL工作流,将其分解为独立任务,并向配置的TES实例发送GA4GH TES兼容的HTTP请求。可配置端点访问需基于JSON Web Token(JWT)的访问令牌(如ELIXIR AAI签发的令牌),运行信息存储在MongoDB数据库中。
注意:当前开发处于beta阶段。文档顶部的网站徽章可查看公开测试部署,更多测试部署可在https://github.com/elixir-cloud-aai/elixir-cloud-aai/blob/dev/resources/resources.md%E4%B8%AD%E6%89%BE%E5%88%B0%E3%80%82
cwl-WES由ELIXIR Cloud & AAI项目开发维护,该项目是一项跨国努力,旨在建立和实施生命科学领域的FAIR研究原则。
详见单独说明。
环境要求
确保安装以下软件:
以上为开发/测试使用的版本,其他版本可能适用。如使用新版本遇到问题,请反馈。
部署步骤
设置环境
创建数据目录及子目录:
bashmkdir -p data/cwl_wes/db data/cwl_wes/output data/cwl_wes/tmp
克隆仓库:
bashgit clone https://github.com/elixir-cloud-aai/cwl-WES.git app
进入应用目录:
bashcd app
可选:编辑/覆盖应用配置
通过应用配置文件
bashvi cwl_wes/config/app_config.yaml
通过环境变量
部分配置可通过环境变量覆盖:
bashexport <ENV_VAR_NAME>=<VALUE>
可用环境变量列表:
| 变量名 | 描述 |
|---|---|
| MONGO_HOST | MongoDB主机端点 |
| MONGO_PORT | MongoDB服务端口 |
| MONGO_DBNAME | MongoDB数据库名称 |
| MONGO_USERNAME | MongoDB客户端用户名 |
| MONGO_PASSWORD | MongoDB客户端密码 |
| RABBIT_HOST | RabbitMQ主机端点 |
| RABBIT_PORT | RabbitMQ服务端口 |
构建与部署
以分离/守护进程模式构建并运行服务:
bashdocker-compose up -d --build
复制FTP凭证
创建包含FTP服务器访问凭证的.netrc文件:
bashcat << EOF > .netrc machine <HOST> login <USERNAME> password <PASSWORD> EOF
需将
<HOST>、<USERNAME>和<PASSWORD>替换为实际值。 如不清楚如何设置,可创建空文件:touch .netrc(仅用于测试)。
将文件复制到运行的worker容器中:
bashfor cont in $(docker ps --all | grep cwl-wes_wes-worker | cut -f1 -d" "); do docker cp .netrc "${cont}:/tmp/user" done
使用服务
访问Swagger UI:
bashfirefox http://localhost:7777/ga4gh/wes/v1/ui
通过POST /runs端点启动简单CWL测试工作流的示例值:
consoleworkflow_params: {"input":{"class":"File","path":"ftp://ftp-private.ebi.ac.uk/upload/foivos/test.txt"}} workflow_type: CWL workflow_type_version: v1.0 workflow_url: https://github.com/uniqueg/cwl-example-workflows/blob/master/hashsplitter-workflow.cwl
留空其他值,点击“Try it out!”按钮。
也可通过curl使用服务,例如查询GET /runs端点:
consolecurl -X GET \ --header 'Accept: application/json' \ 'http://localhost:7777/ga4gh/wes/v1/runs'
授权设置
除GET /service-info外的所有端点可配置为要求请求头中包含有效的JWT Bearer令牌。在应用配置文件中设置以下参数为True启用:
yaml# 安全设置 security: authorization_required: True
发送授权请求需持有有效的JWT Bearer令牌。该应用基于ELIXIR AAI签发的JWT开发,其他身份提供商签发的JWT可能适用。
若要在ELIXIR测试部署中使用实际计算资源,必须是特定ELIXIR用户组的成员。可通过此处申请加入(仅ELIXIR AAI用户)。申请时请简要说明使用测试部署的原因,并注意资源仅用于合理测试(不用于生产工作流)。
通过curl访问受保护端点时,需添加Authorization头:
consolecurl -X GET \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <YOUR_TOKEN>' \ 'http://localhost:7777/ga4gh/wes/v1/runs'
使用Swagger UI时,需点击右上角的“Authorize”按钮,在api_key字段中输入JWT令牌(前缀为Bearer)。
本项目是社区努力的成果,依赖您的贡献(错误报告、功能请求、讨论、修复或代码更改)。如有意贡献,请参考组织的https://github.com/elixir-cloud-aai/elixir-cloud-aai/blob/dev/CONTRIBUTING.md%EF%BC%8C%E5%B9%B6%E9%81%B5%E5%AE%88https://github.com/elixir-cloud-aai/elixir-cloud-aai/blob/dev/CODE_OF_CONDUCT.md%E3%80%82
应用目前处于beta开发阶段,版本仅供内部使用。计划很快推出完全符合规范的版本,之后将采用语义化版本控制,与WES规范版本同步,补丁级变更添加日期戳。
本项目采用Apache License 2.0许可,详见仓库中的LICENSE文件。
本项目是ELIXIR Cloud & AAI项目的协作成果。通过https://github.com/elixir-cloud-aai/elixir-cloud-aai%E8%8E%B7%E5%8F%96%E8%81%8A%E5%A4%A9%E6%88%96%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F%E3%80%82%E4%BB%BB%E4%BD%95%E5%92%A8%E8%AF%A2%E3%80%81%E5%BB%BA%E8%AE%AE%E6%88%96%E9%97%AE%E9%A2%98%E8%AF%B7%E6%8F%90%E5%8F%8A%E6%9C%AC%E6%9C%8D%E5%8A%A1%E5%90%8D%E7%A7%B0%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务