neicnordic/sda-doaNeIC sda-doa Data Out API是一个用于数据输出的接口服务,主要用于处理文件和数据集的导出请求。该服务集成了REST端点、TLS加密、消息队列(RabbitMQ)、数据库(PostgreSQL)和文件存储(POSIX/S3)等组件,支持JWT身份验证和Crypt4GH加密,提供安全可控的数据导出能力。
适用于需要安全、可控数据导出功能的场景,包括:
以下环境变量用于配置服务行为,可根据部署需求调整:
| 变量名 | 默认值 | 描述 |
|---|---|---|
| REST_ENABLED | true | 启用/禁用REST端点 |
| SSL_ENABLED | true | 启用/禁用REST端点TLS加密 |
| KEYSTORE_PATH | /etc/ega/ssl/server.cert | 服务器密钥库文件路径 |
| KEYSTORE_PASSWORD | 密钥库密码(必填) | |
| OUTBOX_ENABLED | true | 启用/禁用输出存储功能 |
| OUTBOX_TYPE | POSIX | 输出存储类型:POSIX(文件系统)或S3(对象存储) |
| OUTBOX_QUEUE | exportRequests | 文件/数据集导出请求的消息队列名称 |
| OUTBOX_LOCATION | /ega/outbox/p11-%s/files/ | 输出存储路径(含用户名占位符%s) |
| BROKER_HOST | private-mq | RabbitMQ消息队列主机名 |
| BROKER_PORT | 5671 | RabbitMQ消息队列端口 |
| BROKER_VHOST | / | RabbitMQ虚拟主机 |
| BROKER_VALIDATE | true | 是否验证RabbitMQ服务器证书 |
| DB_INSTANCE | db | 数据库主机名 |
| DB_PORT | 5432 | 数据库端口 |
| POSTGRES_DB | lega | 数据库名称 |
| SSL_MODE | verify-full | 数据库连接SSL模式 |
| ROOT_CERT_PATH | /etc/ega/ssl/CA.cert | 数据库连接CA证书路径 |
| CERT_PATH | /etc/ega/ssl/client.cert | 数据库客户端证书路径 |
| CERT_KEY | /etc/ega/ssl/client.key | 数据库客户端密钥路径 |
| POSTGRES_USER | lega_out | 数据库用户名 |
| POSTGRES_PASSWORD | 数据库密码(必填) | |
| S3_ENDPOINT | archive | S3服务器主机名(OUTBOX_TYPE为S3时生效) |
| S3_PORT | 443 | S3服务器端口 |
| S3_ACCESS_KEY | minio | S3访问密钥 |
| S3_SECRET_KEY | miniostorage | S3密钥 |
| S3_REGION | us-west-1 | S3区域 |
| S3_BUCKET | lega | S3存储桶名称 |
| S3_SECURE | true | 是否通过HTTPS访问S3后端 |
| S3_ROOT_CERT_PATH | /etc/ssl/certs/ca-certificates.crt | S3连接CA证书路径 |
| S3_OUT_ENDPOINT | outbox | S3输出存储服务器主机名 |
| S3_OUT_PORT | 443 | S3输出存储服务器端口 |
| S3_OUT_ACCESS_KEY | minio | S3输出存储访问密钥 |
| S3_OUT_SECRET_KEY | miniostorage | S3输出存储密钥 |
| S3_OUT_REGION | us-west-1 | S3输出存储区域 |
| S3_OUT_BUCKET | lega | S3输出存储桶名称 |
| S3_OUT_SECURE | true | 是否通过HTTPS访问S3输出存储后端 |
| S3_OUT_ROOT_CERT_PATH | /etc/ssl/certs/ca-certificates.crt | S3输出存储连接CA证书路径 |
| ARCHIVE_PATH | / | 文件系统归档路径(OUTBOX_TYPE为POSIX时生效) |
| PASSPORT_PUBLIC_KEY_PATH | /etc/ega/jwt/passport.pem | Passport JWT验证公钥路径 |
| OPENID_CONFIGURATION_URL | [***] | OpenID配置端点URL |
| USERINFO_ENDPOINT_URL | [***] | /userinfo端点URL(用于不透明令牌) |
| VISA_PUBLIC_KEY_PATH | /etc/ega/jwt/visa.pem | Visa JWT验证公钥路径 |
| CRYPT4GH_PRIVATE_KEY_PATH | /etc/ega/crypt4gh/key.pem | Crypt4GH私钥路径 |
| CRYPT4GH_PRIVATE_KEY_PASSWORD_PATH | /etc/ega/crypt4gh/key.pass | Crypt4GH私钥密码路径 |
| LOGSTASH_HOST | Logstash实例主机名(可选,为空则不启用) | |
| LOGSTASH_PORT | Logstash实例端口(可选,为空则不启用) |
可通过环境变量配置不同组件的日志级别,格式为LOGGING_LEVEL_<包名>(包名中的.需替换为_)。示例:
LOGGING_LEVEL_ORG_SPRINGFRAMEWORK=OFFLOGGING_LEVEL_NO_UIO_IFI=DEBUG以下是在Docker Swarm中部署sda-doa服务的示例配置:
yaml... doa: image: neicnordic/sda-doa:latest ports: - 443:8080 # 映射容器8080端口到主机443端口(HTTPS服务) deploy: restart_policy: condition: on-failure # 失败时自动重启 delay: 5s # 重启延迟时间 window: 120s # 稳定性观察窗口 environment: - S3_PORT # 引用外部定义的S3端口变量 - KEYSTORE_PASSWORD=${SERVER_CERT_PASSWORD} # 从环境变量注入密钥库密码 - DB_INSTANCE=${DB_HOST} # 从环境变量注入数据库主机 - POSTGRES_DB=${DB_DATABASE_NAME} # 从环境变量注入数据库名称 - POSTGRES_PASSWORD=${DB_LEGA_OUT_PASSWORD} # 从环境变量注入数据库密码 - S3_ACCESS_KEY=${MINIO_ACCESS_KEY} # 从环境变量注入S3访问密钥 - S3_SECRET_KEY=${MINIO_SECRET_KEY} # 从环境变量注入S3密钥 - LOGSTASH_HOST # 引用外部定义的Logstash主机 - LOGSTASH_PORT # 引用外部定义的Logstash端口 secrets: # 挂载证书和密钥文件(需预先创建Docker Secrets) - source: rootCA.pem target: /etc/ega/ssl/CA.cert # 数据库CA证书 - source: rootCA.pem target: /etc/ssl/certs/ca-certificates.crt # S3 CA证书 - source: server.p12 target: /etc/ega/ssl/server.cert # 服务器密钥库 - source: client.pem target: /etc/ega/ssl/client.cert # 数据库客户端证书 - source: client-key.der target: /etc/ega/ssl/client.key # 数据库客户端密钥 - source: jwt.pub.pem target: /etc/ega/jwt/passport.pem # Passport JWT公钥 - source: jwt.pub.pem target: /etc/ega/jwt/visa.pem # Visa JWT公钥 - source: ega.sec.pem target: /etc/ega/crypt4gh/key.pem # Crypt4GH私钥 - source: ega.sec.pass target: /etc/ega/crypt4gh/key.pass # Crypt4GH私钥密码 ...
部署前需确保所有引用的secrets(如rootCA.pem、server.p12等)已在Docker Swarm中创建。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务