
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
FIWARE SigFox IoT Agent 旨在作为 Sigfox 回调协议与 OMA NGSI 协议之间的桥梁,后者被 https://github.com/telefonicaid/fiware-orion 及其他 FIWARE 生态系统组件使用。该镜像基于 https://github.com/telefonicaid/iotagent-node-lib 构建,是 FIWARE 项目的一部分,用于实现 Sigfox 设备与 FIWARE 平台的无缝集成。
适用于需要将 Sigfox 低功耗广域网设备数据集成到 FIWARE 生态系统的场景,包括但不限于:
IoT Agent 需与 Orion Context Broker 实例连接,若使用 IOTA_REGISTRY_TYPE=mongodb,还需 MongoDB 数据库。以下是完整的 docker-compose 配置示例:
yamlversion: "3.1" volumes: mongodb: ~ services: iot-agent: image: fiware/sigfox-iotagent hostname: iot-agent container_name: fiware-iot-agent depends_on: - mongodb expose: - "4041" - "17428" ports: - "4041:4041" - "17428:17428" environment: - "IOTA_CB_HOST=orion" - "IOTA_CB_PORT=1026" - "IOTA_NORTH_PORT=4041" - "IOTA_REGISTRY_TYPE=mongodb" - "IOTA_MONGO_HOST=mongodb" - "IOTA_MONGO_PORT=27017" - "IOTA_MONGO_DB=iotasigfox" - "IOTA_SIGFOX_PORT=17428" - "IOTA_SIGFOX_ID_FIELD_NAME=id" - "IOTA_PROVIDER_URL=http://iot-agent:4041" mongodb: image: mongo:4.2 hostname: mongodb container_name: db-mongo ports: - "27017:27017" command: --bind_ip_all volumes: - mongodb:/data orion: image: fiware/orion hostname: orion container_name: fiware-orion depends_on: - mongodb expose: - "1026" ports: - "1026:1026" command: -dbhost mongodb
通过环境变量可配置以下核心参数:
| 环境变量 | 说明 |
|---|---|
IOTA_CB_HOST | 用于更新上下文的 Context Broker 主机名 |
IOTA_CB_PORT | Context Broker 监听上下文更新的端口 |
IOTA_NORTH_PORT | IoT Agent 用于配置和接收上下文更新的端口 |
IOTA_REGISTRY_TYPE | 设备信息存储类型(内存或数据库) |
IOTA_MONGO_HOST | MongoDB 主机名(用于存储设备和服务信息) |
IOTA_MONGO_PORT | MongoDB 监听端口 |
IOTA_MONGO_DB | MongoDB 数据库名称 |
IOTA_SIGFOX_PORT | IoT Agent 监听 Sigfox 设备流量的端口 |
IOTA_SIGFOX_ID_FIELD_NAME | 接收的 Sigfox 回调中 ID 字段的名称(默认:id) |
IOTA_PROVIDER_URL | 注册命令时传递给 Context Broker 的 URL,用于命令转发 |
完整配置参数可参考 https://iotagent-node-lib.readthedocs.io/en/latest/installationguide/index.html#configuration%EF%BC%8CSigfox 特定配置见 https://github.com/telefonicaid/sigfox-iotagent/tree/master/docs%E3%80%82
基本构建
使用项目 Dockerfile 可构建不同版本的镜像:
默认获取最新代码:
consoledocker build -t iot-agent . --build-arg DOWNLOAD=latest
获取稳定版本:
consoledocker build -t iot-agent . --build-arg DOWNLOAD=stable
获取特定版本(如 1.7.0):
consoledocker build -t iot-agent . --build-arg DOWNLOAD=1.7.0
从自定义 Fork 构建
指定 GitHub 账户、仓库和分支:
consoledocker build -t iot-agent . \ --build-arg GITHUB_ACCOUNT=<你的账户> \ --build-arg GITHUB_REPOSITORY=<你的仓库> \ --build-arg SOURCE_BRANCH=<你的分支> \ --target=distroless|pm2|slim
从本地源码构建
将 Dockerfile 复制到项目根目录,添加本地源码复制指令:
DockerfileCOPY . /opt/iotasigfox/
PM2 版本:使用 PM2 进程管理器运行:
consoledocker run --name iotagent -d fiware/sigfox-iotagent:<tag>-pm2
Distroless 版本:使用精简容器运行:
consoledocker run --name iotagent -d fiware/sigfox-iotagent:<tag>-distroless
敏感信息可通过 _FILE 后缀从文件加载,支持的变量包括:IOTA_AUTH_USER、IOTA_AUTH_PASSWORD、IOTA_AUTH_CLIENT_ID、IOTA_AUTH_CLIENT_SECRET、IOTA_MONGO_USER、IOTA_MONGO_PASSWORD。示例:
consoledocker run --name iotagent -e IOTA_AUTH_PASSWORD_FILE=/run/secrets/password -d fiware/sigfox-iotagent
高负载场景下建议调整系统资源限制:
consoleulimit -n 65535 # 最大打开文件描述符数 ulimit -c unlimited # 核心文件大小无限制 ulimit -l unlimited # 内存锁定大小无限制
容器启动时应用限制:
consoledocker run --ulimit nofile=65535:65535 --ulimit core=100000000:100000000 --ulimit memlock=100000000:100000000 \ --name iotagent -d fiware/sigfox-iotagent
使用 MongoDB 时,建议为设备和服务组集合创建索引:
consoledocker exec <mongo容器名> mongo --eval ' conn = new Mongo(); db = conn.getDB("iotasigfox"); # 数据库名需与 IOTA_MONGO_DB 一致 db.createCollection("devices"); db.devices.createIndex({"_id.service": 1, "_id.id": 1, "_id.type": 1}); db.devices.createIndex({"_id.type": 1}); db.devices.createIndex({"_id.id": 1}); db.createCollection("groups"); db.groups.createIndex({"_id.resource": 1, "_id.apikey": 1, "_id.service": 1}); db.groups.createIndex({"_id.type": 1});' > /dev/null
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务