如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:
生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。国内用户首推 DeepSeek、元宝 AI 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
dsp-toolbox是一个面向DevOps的脚本工具箱,主要用于生成部署所需的元数据文件、管理FiaB(Firecloud in a Box)主机生命周期(创建、停止、重启、销毁等)以及处理GitHub子模块依赖关系。该工具支持GCE(Google Compute Engine)环境部署,并针对Firecloud项目提供特定的部署流程。
*.properties文件,供Jenkins作业或其他脚本执行部署使用bashdocker build .
部署脚本不会实际执行部署,而是生成元数据*.properties文件,供后续部署流程使用。
配置参数
| 参数 | 说明 | 是否必填 |
|---|---|---|
| PROJECT | 项目名称,可选"kdux"或"firecloud",可配置其他团队 | 是 |
| SERVICE | 要部署的服务名称(应与主机标签对应) | 是 |
| ENVIRONMENT | 部署环境 | 是 |
| GOOGLE_PROJ | 服务所在的Google项目名称 | 是 |
| SERVICE_ACCT | 具有Google项目读取权限的服务账号JSON文件路径(需挂载到工作目录) | 是 |
| TAGS | [可选] 用于过滤GCE实例的标签键值对JSON文件路径 | 否 |
| NOT_TAGS | [可选] 用于排除GCE实例的标签,逗号分隔字符串 | 否 |
示例标签文件
json{ "ENV": "dev", "VERSION": "v1" }
使用示例
bashdocker run --rm -v $PWD:/app \ -e OUTPUT_DIR=/app/properties \ -e ENVIRONMENT=$ENVIRONMENT \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ -e SERVICE_ACCT=/app/$SERVICE_ACCT \ -e TAGS=$TAGS \ -e NOT_TAGS=$NOT_TAGS \ broadinstitute/dsp-toolbox deploy $PROJECT $SERVICE
上述命令将在OUTPUT_DIR目录中为GOOGLE_PROJ中所有标记有SERVICE、ENVIRONMENT及指定TAGS的主机生成属性文件。
Firecloud部署
Firecloud通过环境分支(dev、alpha、staging、prod)检测服务变更并仅部署变更内容。可仅指定环境(不指定服务)运行部署:
bashdocker run --rm -v $FC_DEVELOP:/app \ -e OUTPUT_DIR=/app/properties \ -e ENV=$ENV \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ -e SERVICE_ACCT=/app/$SERVICE_ACCT \ -e TAGS=$TAGS \ broadinstitute/dsp-toolbox deploy firecloud
也可指定具体服务名称(如deploy firecloud rawls),或使用all关键字部署所有项目(忽略SCM变更):deploy firecloud all。
执行以下操作需具备FiaB分配器的有效服务账号及分配器URL。开发和QA环境的FiaB分配器URL为https://fiab-allocator.dsp-techops.broadinstitute.org,可使用broad-dsde-dev或broad-dsde-qa项目中具有"Project Editor"权限的服务账号认证。
创建FiaB主机
Python方式:
bashpython -m src.main.ops.fiab --command create --user <username> --project <google-proj> --allocator <allocator url> --serviceAcct <service acct filepath> --diskSize <(optional)> --machineType <(optional)>
Docker方式:
bashdocker run --rm -v $PWD:/app \ -e ALLOCATOR_URL=$ALLOCATOR_URL \ -e SERVICE_ACCT=$SERVICE_ACCT \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ -e USERNAME=$USERNAME \ -e DISK_SIZE=100 \ -e MACHINE_TYPE=n1-standard-1 \ broadinstitute/dsp-toolbox fiab create
DISK_SIZE(默认100)和MACHINE_TYPE(默认n1-standard-1)为可选参数。
停止FiaB主机
Python方式:
bashpython -m src.main.ops.fiab --command stop --allocator <allocator url> --serviceAcct <service acct filepath> --hostName <host to stop> --project <google-proj>
Docker方式:
bashdocker run --rm -v $PWD:/app \ -e ALLOCATOR_URL=$ALLOCATOR_URL \ -e SERVICE_ACCT=$SERVICE_ACCT \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ -e FIAB_HOST=$FIAB_HOST \ broadinstitute/dsp-toolbox fiab stop
重启已停止的FiaB主机
Python方式:
bashpython -m src.main.ops.fiab --command restart --allocator <allocator url> --serviceAcct <service acct filepath> --hostName <host to restart> --project <google-proj>
Docker方式:
bashdocker run --rm -v $PWD:/app \ -e ALLOCATOR_URL=$ALLOCATOR_URL \ -e SERVICE_ACCT=$SERVICE_ACCT \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ -e FIAB_HOST=$FIAB_HOST \ broadinstitute/dsp-toolbox fiab restart
重置运行中的主机
Python方式:
bashpython -m src.main.ops.fiab --command reset --allocator <allocator url> --serviceAcct <service acct filepath> --hostName <host to reset> --project <google-proj>
Docker方式:
bashdocker run --rm -v $PWD:/app \ -e ALLOCATOR_URL=$ALLOCATOR_URL \ -e SERVICE_ACCT=$SERVICE_ACCT \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ broadinstitute/dsp-toolbox instance reset <instance-name>
销毁FiaB主机
Python方式:
bashpython -m src.main.ops.fiab --command destroy --allocator <allocator url> --serviceAcct <service acct filepath> --hostName <host to destroy> --project <google-proj>
Docker方式:
bashdocker run --rm -v $PWD:/app \ -e ALLOCATOR_URL=$ALLOCATOR_URL \ -e SERVICE_ACCT=$SERVICE_ACCT \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ -e FIAB_HOST=$FIAB_HOST \ broadinstitute/dsp-toolbox fiab destroy
列出FiaB主机
列出Google项目中所有FiaB主机,可选按标签过滤,返回包含InstanceName和IP的JSON列表。
Python方式:
bashpython -m src.main.ops.fiab --command list --allocator <allocator url> --serviceAcct <service acct filepath> --project <(optional) google-proj> --hostName <(optional) host to find>
Docker方式:
bashdocker run --rm -v $PWD:/app \ -e ALLOCATOR_URL=$ALLOCATOR_URL \ -e SERVICE_ACCT=$SERVICE_ACCT \ -e GOOGLE_PROJ=$GOOGLE_PROJ \ -e FIAB_HOST=$FIAB_HOST \ broadinstitute/dsp-toolbox fiab list
GOOGLE_PROJ和FIAB_HOST为可选环境变量。
列出子模块依赖
列出具有共同分支名称的所有子模块。
Python方式:
bashpython -m src.main.github.get_submodule_dependencies $BRANCH $GITHUB_TOKEN
Docker方式:
bashdocker run --rm -e GITHUB_BRANCH=$GITHUB_BRANCH \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ broadinstitute/dsp-toolbox github dependencies
用于PR的自动化测试FiaB环境设置。
更新子模块哈希
在Firecloud服务的develop分支推送变更后,更新firecloud-develop中的子模块哈希。
bashdocker run --rm -e GITHUB_TOKEN=$GITHUB_TOKEN \ -e ENV=$ENV \ -e PROJECT=$PROJECT \ -e GIT_SHA=$GIT_SHA \ broadinstitute/dsp-toolbox:latest update-firecloud-service
PROJECT为要更新的服务名称,GIT_SHA为提交哈希,需有效的GITHUB_TOKEN认证。用于update-submodule-hash Jenkins作业。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
发给 Cursor、ChatGPT、豆包等 AI 的说明文档
无需登录使用专属域名
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
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务