Song 是一个包含微服务(song-server)和CLI客户端(song-client)的项目,两者均基于Java 8和Spring Boot开发。其核心用途是快速、可靠地跟踪分散在多个云存储系统中的基因组元数据,支持元数据的提交、管理、发布及相关操作,适用于基因组数据管理场景。
http://localhost:8080/swagger-ui.html)application.yml)或环境变量配置,环境变量优先级更高通过Maven构建项目,生成可执行JAR包:
bashmvn clean package
直接通过Maven运行
bashgit clone git@github.com:icgc-dcc/SONG.git cd SONG/song-server mvn spring-boot:run -Dspring-boot.run.profiles=dev,test
通过JAR包运行
bashjava -jar song-server-0.1.1-SNAPSHOT.jar --spring.profiles.active=dev,test
提供make命令支持本地部署依赖服务,分为两种模式:
1. 开发模式(默认)
mvn package)后将文件复制到容器运行,支持快速开发;暴露调试端口(song-client:5005,song-server:5006)DEMO_MODE=0(未定义时默认)调试配置(IntelliJ)
make intellij-song-client-config获取基础配置)sleep 5)确保调试端口绑定make clean start-song-server运行song-client(开发模式)
bash./docker/tools/song-client-dev ping # 示例:ping song-server
2. 演示模式
DEMO_MODE=1启动song-server(演示模式)
bashmake start-song-server DEMO_MODE=1
运行song-client(演示模式)
bash./docker/tools/song-client-demo ping # 示例:ping song-server
服务运行时可通过Swagger UI访问API文档:
http://localhost:8080/swagger-ui.htmlsong-client是与song-server交互的CLI工具,支持Docker化运行。
配置方式
支持通过conf/application.yml文件或环境变量配置,环境变量优先级更高。配置项及对应环境变量如下:
| 配置项 | 环境变量 | 说明 |
|---|---|---|
| client.serverUrl | CLIENT_SERVER_URL | song-server地址 |
| client.studyId | CLIENT_STUDY_ID | 研究ID |
| client.programName | CLIENT_PROGRAM_NAME | 项目名称 |
| client.debug | CLIENT_DEBUG | 是否开启调试模式 |
| client.accessToken | CLIENT_ACCESS_TOKEN | 访问令牌 |
配置示例(环境变量方式):
bashCLIENT_SERVER_URL=http://localhost:8080 \ CLIENT_STUDY_ID=ABC123-CA \ CLIENT_PROGRAM_NAME=sing \ CLIENT_DEBUG=true \ CLIENT_ACCESS_TOKEN=myAccessToken \ ./bin/sing config # 本地运行示例
Docker运行命令
基本运行
bashdocker run --rm \ -e 'CLIENT_SERVER_URL=http://localhost:8080' \ -e 'CLIENT_STUDY_ID=ABC123-CA' \ -e 'CLIENT_PROGRAM_NAME=sing' \ -e 'CLIENT_DEBUG=true' \ -e 'CLIENT_ACCESS_TOKEN=myAccessToken' \ overture/song-client:latest \ sing config
非root用户运行
song用户:
bashdocker run --rm \ -u song \ -e 'CLIENT_SERVER_URL=http://localhost:8080' \ ... # 其他环境变量 overture/song-client:latest \ sing config
bashdocker run --rm \ -u $(id -u):$(id -g) \ -e 'CLIENT_SERVER_URL=http://localhost:8080' \ ... # 其他环境变量 overture/song-client:latest \ sing config
输出文件到主机
通过挂载卷将容器内输出文件映射到主机,例如生成清单文件:
bashmkdir -p ./mydir # 确保主机目录存在且有权限 docker run --rm \ -u $(id -u):$(id -g) \ -v $PWD/mydir:/data \ -e 'CLIENT_SERVER_URL=http://localhost:8080' \ -e 'CLIENT_STUDY_ID=ABC123-CA' \ -e 'CLIENT_PROGRAM_NAME=sing' \ -e 'CLIENT_DEBUG=true' \ -e 'CLIENT_ACCESS_TOKEN=myAccessToken' \ overture/song-client:latest \ sing manifest -a someAnalysisId -d /data -f /data/output-manifest.txt
生成的output-manifest.txt将保存到主机./mydir目录。
mvn package。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务