
如果你使用 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化部署包,旨在提供一个轻量级、可移植的数据采集、转换和加载(ETL)解决方案。通过容器化部署,简化了数据从各类源系统到目标存储的全流程处理,降低了环境依赖和部署复杂度,适用于各类数据集成场景。
适用于需要定期执行数据抽取、转换、加载的场景,替代传统手动或脚本化的ETL流程。
当业务系统数据分散在不同数据源(如MySQL数据库、CSV文件、API接口)时,可通过本镜像实现统一的数据汇聚。
用于系统迁移时的数据全量迁移,或生产环境与测试/分析环境的数据定期同步。
4.1.1 拉取镜像
bashdocker pull [镜像仓库地址]/ingestion-framework:latest
4.1.2 启动容器(基础配置)
通过挂载配置文件和设置环境变量启动容器:
bashdocker run -d \ --name ingestion-framework \ -v /path/to/config:/app/config \ # 挂载配置文件目录 -e SOURCE_TYPE="mysql" \ # 数据源类型 -e SOURCE_CONN="jdbc:mysql://host:port/db" \ # 数据源连接串 -e SOURCE_USER="user" \ # 数据源用户名 -e SOURCE_PASSWORD="password" \ # 数据源密码 -e TARGET_TYPE="postgres" \ # 目标存储类型 -e TARGET_CONN="jdbc:postgresql://host:port/target_db" \ # 目标存储连接串 -e TASK_SCHEDULE="0 0 * * *" \ # 每日凌晨执行(Cron表达式) [镜像仓库地址]/ingestion-framework:latest
4.2.1 配置文件方式
推荐通过挂载配置文件(如config.yaml)定义数据摄入流程,示例配置:
yaml# /path/to/config/config.yaml source: type: "mysql" conn: "jdbc:mysql://source-mysql:3306/source_db" user: "source_user" password: "source_pass" table: "source_table" query: "SELECT id, name, create_time FROM source_table WHERE create_time > '{{last_exec_time}}'" # 增量查询 transform: rules: - action: "rename" field: "create_time" new_name: "event_time" - action: "format_date" field: "event_time" format: "yyyy-MM-dd HH:mm:ss" target: type: "postgres" conn: "jdbc:postgresql://target-postgres:5432/target_db" user: "target_user" password: "target_pass" table: "target_table" mode: "upsert" # 插入或更新 primary_key: "id" schedule: cron: "0 */1 * * *" # 每小时执行一次 logging: level: "INFO" file: "/var/log/ingestion/etl.log"
启动容器时挂载配置文件:
bashdocker run -d \ --name ingestion-framework \ -v /path/to/config:/app/config \ [镜像仓库地址]/ingestion-framework:latest
4.2.2 环境变量参数
支持通过环境变量覆盖配置文件中的关键参数,常用环境变量:
| 环境变量名 | 描述 | 示例值 |
|---|---|---|
SOURCE_TYPE | 数据源类型 | mysql/postgres/csv/api |
SOURCE_CONN | 数据源连接串 | jdbc:mysql://host:port/db |
SOURCE_USER | 数据源用户名 | user |
SOURCE_PASSWORD | 数据源密码 | pass |
TARGET_TYPE | 目标存储类型 | postgres/snowflake/s3 |
TARGET_CONN | 目标存储连接串 | jdbc:postgresql://host:port/target_db |
TARGET_USER | 目标存储用户名 | target_user |
TARGET_PASSWORD | 目标存储密码 | target_pass |
TASK_SCHEDULE | 任务调度Cron表达式 | 0 0 * * *(每日凌晨) |
LOG_LEVEL | 日志级别 | DEBUG/INFO/WARN/ERROR |
METRICS_ENABLE | 是否开启metrics暴露 | true/false |
METRICS_PORT | metrics暴露端口 | 9090 |
通过docker-compose.yml编排数据摄入服务与依赖组件(如目标数据库):
yamlversion: "3.8" services: ingestion-framework: image: [镜像仓库地址]/ingestion-framework:latest container_name: ingestion-framework volumes: - ./config:/app/config # 挂载本地配置目录 - ./logs:/var/log/ingestion # 挂载日志目录 environment: - LOG_LEVEL=INFO - METRICS_ENABLE=true - METRICS_PORT=9090 depends_on: - target-postgres # 依赖目标数据库 restart: unless-stopped target-postgres: image: postgres:14 container_name: target-postgres environment: - POSTGRES_DB=target_db - POSTGRES_USER=target_user - POSTGRES_PASSWORD=target_pass ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data volumes: postgres-data:
启动服务:
bashdocker-compose up -d
bashdocker logs -f ingestion-framework
bashcurl http://localhost:9090/metrics
JAVA_OPTS环境变量,如-e JAVA_OPTS="-Xmx2g -Xms1g")。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务