首页
/ Gladys智能家居助手Docker-Compose部署指南

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主服务的核心配置:

  1. 镜像选择:使用官方提供的v4版本镜像,确保系统稳定性
  2. 容器命名:明确命名为"gladys",便于管理
  3. 重启策略:设置为always,确保服务意外停止后自动重启
  4. 特权模式:启用privileged模式,使容器能够访问主机设备
  5. 网络模式:采用host网络模式,简化网络配置
  6. 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

关键环境变量说明:

  1. NODE_ENV:设置为production,启用生产环境优化
  2. SQLITE_FILE_PATH:指定数据库文件存储位置
  3. SERVER_PORT:服务监听80端口,简化访问
  4. TZ:时区设置为欧洲巴黎,用户应根据实际位置调整

卷挂载配置

volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - /var/lib/gladysassistant:/var/lib/gladysassistant
  - /dev:/dev
  - /run/udev:/run/udev:ro

卷挂载详解:

  1. docker.sock:允许Gladys与Docker守护进程通信
  2. 数据目录:持久化存储Gladys数据,防止容器重启丢失
  3. 设备目录:挂载/dev目录,使Gladys能够访问主机设备
  4. 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是一个实用的附加服务,功能包括:

  1. 自动更新:监控并自动更新Gladys容器
  2. 清理旧镜像:--cleanup参数自动删除旧镜像
  3. 重启包含:--include-restarting参数确保重启的容器也被监控

部署建议

  1. 时区调整:根据所在地区修改TZ环境变量
  2. 数据备份:定期备份/var/lib/gladysassistant目录
  3. 资源监控:在资源有限的环境中,考虑添加资源限制
  4. 安全考虑:privileged模式有安全风险,仅在必要时使用

常见问题解答

Q: 为什么需要挂载/var/run/docker.sock? A: 这允许Gladys与Docker守护进程交互,实现更高级的自动化功能。

Q: 如何修改服务端口? A: 修改SERVER_PORT环境变量,并相应调整网络配置。

Q: Watchtower是必需的吗? A: 不是必需的,但推荐使用以保持系统自动更新。

通过这份docker-compose配置,用户可以快速部署一个功能完善的Gladys智能家居系统。根据实际需求,可以进一步调整配置参数,如资源限制、网络设置等,以获得最佳使用体验。