
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本容器基于debian-slim:stable,通过apt-get从官方debian仓库安装owserver、owhttpd和owftpd,用于运行1-wire服务器。主要设计用于在Raspberry Pi或其他设备上与智能家居系统配合使用,支持多种主流智能家居平台集成。
主要适用于需要集成1-wire设备的智能家居系统,支持以下平台:
Dockerfile中声明的默认变量
| 变量名 | 默认值 | 说明 |
|---|---|---|
| WEB_PORT | 2121 | 设置/etc/owfs.conf中的HTTP端口 |
| OWFS_PORT | 4304 | 设置/etc/owfs.conf中的owserver端口 |
| FTP_PORT | 2120 | 设置/etc/owfs.conf中的FTP端口 |
| OW_DEVICE | onewire | 设置/etc/owfs.conf中的映射设备 |
| OW_SERVER | 127.0.0.1 | 设置/etc/owfs.conf中的owserver地址 使用--net=host选项或本地服务访问时保持127.0.0.1 其他容器访问时可设置容器名称或别名 |
这些变量可在启动容器时通过-e参数覆盖,新值将自动更新容器内的/etc/owfs.conf文件。
启动脚本(start.sh)评估的变量
| 变量名 | 可能值 | 说明 |
|---|---|---|
| CUSTOM_CONFIG_ENABLED | 1 | 启用自定义配置文件,非1值表示禁用 |
| CUSTOM_CONFIG_FILE | /path/filename | 自定义配置文件的完整路径 需通过-v参数将主机配置文件映射到容器内对应路径 |
| SERVICES_LVL | 1, 2或3 | 1: 仅启动owserver 2: 启动owserver和owhttpd 3: 启动所有三个服务 未指定或其他值默认使用3 |
标准配置启动(使用udev规则设置设备为/dev/onewire)
首先在主机上设置udev规则(以Denkovi设备为例):
bashATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="DAE001xy", SUBSYSTEMS=="usb", ACTION=="add", MODE="0660", GROUP="plugdev", SYMLINK+="onewire"
启动容器:
bashdocker run -d \ --name=owserver \ --net=host \ --restart=always \ -v /etc/localtime:/etc/localtime:ro \ --device=/dev/onewire \ roobbb/owserver
验证udev规则是否生效:
ls -l /dev/onew*,如未创建正确链接,尝试将SUBSYSTEMS=="usb"改为SUBSYSTEM=="tty"
仅启动owserver服务
bashdocker run -d \ --name=owserver \ --net=host \ --restart=always \ -v /etc/localtime:/etc/localtime:ro \ --device=/dev/onewire \ -e SERVICES_LVL=1 \ roobbb/owserver
覆盖默认参数
当设备路径不是默认的/dev/onewire时,需设置OW_DEVICE变量:
bashdocker run -d \ --name=owserver \ --net=host \ --restart=always \ -v /etc/localtime:/etc/localtime:ro \ --device=/dev/ttyUSB0 \ -e WEB_PORT=1234 \ -e OW_DEVICE=ttyUSB0 \ -e FTP_PORT=21 \ roobbb/owserver
使用自定义配置文件
bashdocker run -d \ --name=owserver \ --net=host \ --restart=always \ -v /etc/localtime:/etc/localtime:ro \ -v /mypath/to_my_config:/root/.local/share \ --device=/dev/ttyS0 \ -e CUSTOM_CONFIG_ENABLED=1 \ -e CUSTOM_CONFIG_FILE=/root/.local/share/owfs.example \ roobbb/owserver:dev
进入运行中的容器
bashdocker exec -it owserver /bin/bash
停止容器
bashdocker stop owserver
FHEM本地安装时
bashdefine myOWServer OWServer 127.0.0.1:4304 attr myOWServer room OneWire
更多详情参见FHEM文档:[] 或 []
FHEM也运行在容器中
bashdocker network create mynet
bashdocker run -d \ --rm \ --name=owserver \ --net=mynet \ --network-alias myserver \ -p 2121:2121 \ -v /etc/localtime:/etc/localtime:ro \ -v /mypath/to_my_config:/root/.local/share \ --device=/dev/ttyUSB0 \ -e CUSTOM_CONFIG_ENABLED=1 \ -e CUSTOM_CONFIG_FILE=/root/.local/share/owfs.example \ roobbb/owserver:dev
bashdocker run -d --rm --net=mynet -p 8083:8083 --name fhem fhem/fhem
bashdefine myLocalOWServer OWServer myserver:4304 attr myLocalOWServer room OWDevice attr myLocalOWServer nonblocking 1
bashdocker run -d --rm \ --name=owserver \ --net=testnet \ --network-alias tryme \ -p 1234:1234 \ -v /etc/localtime:/etc/localtime:ro \ -v ~/dockertests/owserver:/root/.local/share \ --device=/dev/ttyS0 \ -e OW_SERVER=tryme \ -e WEB_PORT=1234 \ roobbb/owserver:dev
在DietPi系统的Raspberry Pi上可能出现以下错误:
cannot read realtime clock: Operation not permitted
即使使用--privileged选项也无法解决,这是由于libseccomp2版本过旧导致。解决方法:
bashdpkg -l | grep libsecc
bashwget http://ftp.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb
bashsudo dpkg -i libseccomp2_2.5.1-1_armhf.deb
更多故障排除信息参见GitHub Wiki:https://github.com/roobbb/owserver/wiki/6.-Troubleshooting#2022-06-22
注:latest标签对应main分支,dev标签仅用于测试目的
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务