如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Apache Iceberg Rest Fixture 是一个轻量级的 Docker 镜像,用于快速部署模拟的 Apache Iceberg REST 服务端点。该镜像旨在为开发、测试和集成验证场景提供便捷的 Iceberg REST API 环境,无需部署完整的 Iceberg 集群或依赖外部存储服务。其核心目标是降低 Iceberg 客户端开发、功能演示和自动化测试的门槛。
基础启动命令
通过 docker run 快速启动内存模式的服务:
bashdocker run -d -p 8181:8181 --name iceberg-rest-fixture apache/iceberg-rest-fixture:latest
-p 8181:8181:映射容器内默认端口(8181)到主机。--name iceberg-rest-fixture:指定容器名称,便于后续操作(如日志查看、停止)。镜像支持通过环境变量自定义服务行为,常用配置如下:
| 环境变量 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
PORT | 服务监听端口 | 8181 | 1-65535 间整数 |
STORAGE_TYPE | 元数据存储类型 | memory | memory(内存)、file(文件系统) |
METADATA_PATH | 元数据存储路径(仅 file 模式) | /tmp/iceberg-metadata | 容器内绝对路径 |
LOG_LEVEL | 日志输出级别 | INFO | DEBUG、INFO、WARN、ERROR |
ALLOW_CORS | 是否允许跨域请求 | false | true、false |
示例:文件系统存储模式启动
使用文件系统存储元数据(需持久化测试数据时):
bashdocker run -d \ -p 8182:8182 \ -e PORT=8182 \ -e STORAGE_TYPE=file \ -e METADATA_PATH=/data/iceberg-metadata \ -v $(pwd)/local-metadata:/data/iceberg-metadata \ # 挂载主机目录到容器,实现数据持久化 --name iceberg-rest-fixture-file \ apache/iceberg-rest-fixture:latest
适用于多服务集成测试场景(如同时启动 Iceberg Rest Fixture 和客户端应用):
yaml# docker-compose.yml version: '3.8' services: iceberg-rest: image: apache/iceberg-rest-fixture:latest container_name: iceberg-rest-fixture ports: - "8181:8181" environment: - PORT=8181 - STORAGE_TYPE=memory - LOG_LEVEL=DEBUG # 调试模式下输出详细请求日志 restart: unless-stopped # 示例:Iceberg 客户端测试容器(如 Python/Java 客户端) test-client: image: python:3.9-slim container_name: iceberg-test-client depends_on: - iceberg-rest command: ["sleep", "3600"] # 保持容器运行,便于手动执行测试命令
启动命令:docker-compose up -d
默认内存模式下,服务重启后数据会丢失。如需在测试中保留元数据,可通过以下方式实现:
文件系统存储 + 卷挂载(推荐):
如上文 STORAGE_TYPE=file 示例,将容器内 METADATA_PATH 挂载到主机目录,实现元数据持久化。
外部存储集成(高级场景):
通过自定义配置文件(需挂载配置卷)指定外部存储(如 S3、GCS),但需额外提供存储访问密钥(不推荐测试环境使用)。
服务启动后,可通过 HTTP 请求调用 Iceberg REST API,以下为常用操作示例:
1. 获取服务状态
bashcurl http://localhost:8181/v1/health # 响应:{"status":"UP","version":"1.0.0"}
2. 创建测试表
bashcurl -X POST http://localhost:8181/v1/catalogs/default/tables \ -H "Content-Type: application/json" \ -d '{ "identifier": "test_db.test_table", "schema": { "type": "struct", "fields": [ {"name": "id", "type": "int", "required": true}, {"name": "data", "type": "string", "required": false} ] }, "location": "s3://test-bucket/test_db/test_table" # 仅为模拟路径,实际存储由 STORAGE_TYPE 控制 }'
3. 查询表元数据
bashcurl http://localhost:8181/v1/catalogs/default/tables/test_db.test_table
STORAGE_TYPE=memory 模式下,容器重启或崩溃会导致所有元数据丢失,需提前备份关键测试数据。PORT 环境变量自定义端口(如 -e PORT=8282),并调整主机端口映射(如 -p 8282:8282)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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