
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本项目使用Docker(底层基于Gradle)构建包含Pinterest Secor(https://github.com/pinterest/secor%EF%BC%89uber-jar%EF%BC%88%E5%90%AB%E6%89%80%E6%9C%89%E4%BE%9D%E8%B5%96%E7%9A%84%E5%8D%95%E4%B8%80jar%E5%8C%85%EF%BC%89%E7%9A%84Docker%E9%95%9C%E5%83%8F%E3%80%82%E5%BD%93%E5%89%8D%E7%89%88%E6%9C%AC%E6%89%93%E5%8C%85%E7%9A%84%E6%98%AFSecor 0.23-SNAPSHOT,使用Kafka客户端版本0.10.0.1。
docker-entrypoint.sh是镜像的入口脚本,负责在运行时读取传入的环境变量并配置Secor。以下表格列出所有可用于配置Secor运行的环境变量。
你可以本地构建镜像:
shelldocker build -t [你的组织名/]secor .
若在AWS实例外运行,需指定AWS凭证:
shelldocker run \ -e DEBUG=true \ -e ZOOKEEPER_QUORUM=zookeeper.quorum.consul:2181 \ -e AWS_ACCESS_KEY=你的密钥 \ -e AWS_SECRET_KEY=你的密钥 \ -e SECOR_S3_BUCKET=my-kafka-backups \ -e SECOR_GROUP=raw_logs \ secor
可通过-e NAME=value传入更多配置选项,详见下方表格。
Docker Hub仓库(https://hub.docker.com/r/ovotech/secor/%EF%BC%89%E9%85%8D%E7%BD%AE%E4%B8%BA%E5%BD%93%E6%9C%AC%E4%BB%93%E5%BA%93%E5%8F%91%E7%94%9F%E5%8F%98%E6%9B%B4%E6%97%B6%E8%87%AA%E5%8A%A8%E6%9E%84%E5%BB%BA%EF%BC%88%E5%A6%82%E6%8E%A8%E9%80%81%E5%88%B0%60master%60%E5%88%86%E6%94%AF%E6%88%96%E5%88%9B%E5%BB%BA%E6%A0%87%E7%AD%BE/%E5%8F%91%E5%B8%83%E7%89%88%E6%9C%AC%EF%BC%89%E3%80%82
可通过环境变量进行配置:
| 环境变量名称 | 是否必填 | 用途 |
|---|---|---|
ZOOKEEPER_QUORUM | 是 | Zookeeper集群地址(若指定KAFKA_SEED_BROKER_HOST则可不填) |
KAFKA_SEED_BROKER_HOST | 是 | Kafka broker地址(若指定ZOOKEEPER_QUORUM则可不填) |
SECOR_S3_BUCKET | 是 | 用于存储备份的S3桶名 |
SECOR_S3_PATH | 是 | S3桶内存储序列文件的路径 |
SECOR_FILE_READER_WRITER_FACTORY | 否 | 使用的WriterFactory(默认:SequenceFileReaderWriterFactory) |
DEBUG | 否 | 启用调试日志(默认:false) |
JVM_MEMORY | 否 | JVM内存大小(通过-Xmx参数,默认:512m) |
KAFKA_SEED_BROKER_PORT | 否 | Kafka broker端口(默认:9092) |
AWS_ACCESS_KEY | 否 | AWS访问密钥 |
AWS_SECRET_KEY | 否 | AWS秘密访问密钥 |
AWS_REGION | 否 | S3上传的AWS区域 |
AWS_ENDPOINT | 否 | S3上传使用的AWS端点 |
SECOR_KAFKA_TOPIC_FILTER | 否 | 需备份的主题正则过滤(默认:.*) |
SECOR_KAFKA_TOPIC_BLACKLIST | 否 | 需排除备份的主题列表 |
SECOR_MAX_FILE_BYTES | 否 | S3中单个文件的最大字节数(默认:200000000) |
SECOR_MAX_FILE_SECONDS | 否 | 文件存储到S3前的最大时间(默认:3600秒) |
SECOR_COMPRESSION_CODEC | 否 | 分区文件使用的Hadoop压缩编码 |
SECOR_FILE_EXTENSION | 否 | 所有分区文件名附加的自定义扩展名 |
SECOR_TIMESTAMP_NAME | 否 | 使用DateMessageParser时JSON中的时间戳字段(默认:timestamp) |
SECOR_TIMESTAMP_PATTERN | 否 | 使用DateMessageParser时时间戳的格式 |
PARTITIONER_GRANULARITY_HOUR | 否 | 是否按小时(及天)分区文件(默认:false) |
PARTITIONER_GRANULARITY_MINUTE | 否 | 是否按分钟(及小时、天)分区文件(默认:false) |
SECOR_KAFKA_GROUP | 否 | Kafka消费者组名(默认:secor_backup) |
SECOR_MESSAGE_PARSER_CLASS | 否 | 使用的消息解析器工厂(默认:OffsetMessageParser) |
SECOR_GENERATION | 否 | 区分不兼容升级的代版本ID(默认:1) |
SECOR_CONSUMER_THREADS | 否 | 每个Secor进程的消费者线程数(默认:7) |
SECOR_MESSAGES_PER_SECOND | 否 | 整个进程每秒消费的最大消息数(默认:10000) |
SECOR_OFFSETS_PER_PARTITION | 否 | 备份分区中存储的偏移量数量(默认:10000000) |
KAFKA_OFFSETS_STORAGE | 否 | 偏移量存储位置(Kafka或ZooKeeper,默认:kafka) |
KAFKA_DUAL_COMMIT_ENABLED | 否 | 是否将处理后的偏移量提交到Kafka和ZooKeeper(默认:false) |
SECOR_OSTRICH_PORT | 否 | Ostrich数据发送端口(默认:9999) |
若仅需打包Secor为独立的uber-JAR,可直接运行Gradle任务:
shell./gradlew shadowJar
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





来自真实用户的反馈,见证轩辕镜像的优质服务