Gladys智能家居助手Docker-Compose部署指南
2025-07-10 06:01:08作者:冯爽妲Honey
项目概述
Gladys是一个开源的智能家居自动化平台,旨在为用户提供简单易用的家庭自动化解决方案。通过Docker容器化部署,用户可以快速搭建自己的智能家居控制中心。本文将详细解析Gladys的docker-compose配置文件,帮助用户理解并正确部署这一系统。
核心服务配置解析
Gladys主服务
gladys:
image: gladysassistant/gladys:v4
container_name: gladys
restart: always
privileged: true
network_mode: host
cgroup: host
这部分定义了Gladys主服务的核心配置:
- 镜像选择:使用官方提供的v4版本镜像,确保系统稳定性
- 容器命名:明确命名为"gladys",便于管理
- 重启策略:设置为always,确保服务意外停止后自动重启
- 特权模式:启用privileged模式,使容器能够访问主机设备
- 网络模式:采用host网络模式,简化网络配置
- cgroup设置:与主机共享cgroup,便于资源管理
日志配置
logging:
driver: "json-file"
options:
max-size: 10m
日志系统采用json-file驱动,单个日志文件最大限制为10MB,既保证了日志可查性,又避免了日志文件无限增长占用磁盘空间。
环境变量设置
environment:
NODE_ENV: production
SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-production.db
SERVER_PORT: 80
TZ: Europe/Paris
关键环境变量说明:
- NODE_ENV:设置为production,启用生产环境优化
- SQLITE_FILE_PATH:指定数据库文件存储位置
- SERVER_PORT:服务监听80端口,简化访问
- TZ:时区设置为欧洲巴黎,用户应根据实际位置调整
卷挂载配置
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/gladysassistant:/var/lib/gladysassistant
- /dev:/dev
- /run/udev:/run/udev:ro
卷挂载详解:
- docker.sock:允许Gladys与Docker守护进程通信
- 数据目录:持久化存储Gladys数据,防止容器重启丢失
- 设备目录:挂载/dev目录,使Gladys能够访问主机设备
- udev目录:以只读方式挂载,用于设备管理
Watchtower服务
watchtower:
image: containrrr/watchtower
restart: always
container_name: watchtower
command: --cleanup --include-restarting
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Watchtower是一个实用的附加服务,功能包括:
- 自动更新:监控并自动更新Gladys容器
- 清理旧镜像:--cleanup参数自动删除旧镜像
- 重启包含:--include-restarting参数确保重启的容器也被监控
部署建议
- 时区调整:根据所在地区修改TZ环境变量
- 数据备份:定期备份/var/lib/gladysassistant目录
- 资源监控:在资源有限的环境中,考虑添加资源限制
- 安全考虑:privileged模式有安全风险,仅在必要时使用
常见问题解答
Q: 为什么需要挂载/var/run/docker.sock? A: 这允许Gladys与Docker守护进程交互,实现更高级的自动化功能。
Q: 如何修改服务端口? A: 修改SERVER_PORT环境变量,并相应调整网络配置。
Q: Watchtower是必需的吗? A: 不是必需的,但推荐使用以保持系统自动更新。
通过这份docker-compose配置,用户可以快速部署一个功能完善的Gladys智能家居系统。根据实际需求,可以进一步调整配置参数,如资源限制、网络设置等,以获得最佳使用体验。