2022
我们一起努力

docker 家庭应用,云主机怎么运行软件

使用 Docker 运行智汀家庭云

本文档描述如何在 Docker 环境下运行智汀家庭云,并且通过交互式客户端控制虚拟设备。

1. 环境准备

只要您的主机安装了 docker 与 docker-compose,都可以运行智汀家庭云。但通常情况下,智汀家庭云更适合运行在 Linux 主机上。

2. 运行智汀家庭云

首先确保主机上已安装 docker 与 docker-compose,并且能够正常运行:

docker version
docker-compose version

创建一个目录作为智汀家庭云运行的根目录,并在该目录内创建文件 docker-compose.yaml,内容如下:

version: "3.9"

services:
  etcd:
    image: bitnami/etcd:3
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
    ports:
      - 2379:2379
      - 2380:2380
  smartassistant:
    image: zhitingtech/smartassistant:latest
    privileged: true
    ports:
      - "8088:8088"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - etcd
  saclient:
    image: zhitingtech/saclient:latest
    network_mode: "host"
    depends_on:
      - smartassistant

该文件配置了三个服务:

  • smartassistant 为智汀家庭云主服务
  • etcd 基础服务,用于插件注册与发现
  • saclient 提供一个命令行跟智汀家庭云进行交互,用于 demo 数据的初始化以及设备控制演示

输入以下命令启动服务:

docker-compose build
docker-compose up

可以通过以下命令查看智汀家庭云状态:

curl http://localhost:8088/check

如果返回以下内容则说明服务已运行起来并且未被绑定

{"status":0,"reason":"成功","data":{"is_bind":false}}

如果返回数据里 is_bind 字段值为 true,则需要删除运行目录的 sadb.db 文件(注意: 该操作会删除已有数据),并且重新运行。

3. 测试智汀家庭云

下面通过 saclient 命令演示初始化智汀家庭云以及添加设备,控制设备的过程。

运行以下命令进入 saclient 命令行界面:

docker-compose exec saclient /app/saclient

可以通过 help 子命令查看 saclient 提供的功能

saclient ? help

saclient 主要提供以下子命令:

  • bind 初始化智汀家庭云,并且生成管理员帐号
  • discover 通过插件扫描设备
  • add 将设备添加到智汀家庭云
  • info 获取设备信息
  • power 向设备发送控制指令

可以按下面的流程进行测试:

saclient ? bind
add device ok, ID: 1
bind ok, user token: xxxxxx
saclient ? discover
{"id":1,"type":"","result":{"device":{"name":"zhiting_M1_abcdefg","identity":"abcdefg","model":"M1","manufacturer":"zhiting","plugin_id":"demo"}},"success":true}
saclient ? add -i abcdefg -f zhiting -m M1 -n zhiting_M1_abcdefg -p demo
add device ok, ID: 2
saclient ? info -i 2
{"status":0,"reason":"成功","data":{"device_info":{"id":2,"name":"zhiting_M1_abcdefg","logo_url":"device_logo_url","model":"M1","location":{"name":"","id":0},"plugin":{"name":"demo","id":"demo","url":"http://127.0.0.1:8088/api/plugin/demo/html/?device_id=2u0026identity=abcdefgu0026model=M1u0026name=zhiting_M1_abcdefgu0026plugin_id=demou0026sa_id=demo-sau0026token=MTYyODA2NDAzNXxOd3dBTkZvM1ZqTkhSRXhYVGtsWVNVTllVbG8yVHpKUVVWTlNWalJhUmtaTFVWVkVWVFF5VkZaQ1RsbEVWMVZJVkVsTlNESktRVUU9fFTRixaAgA1QqIpJVvogB87HvvjTpFI3dk4ifqvupUdE"},"attributes":[{"id":1,"attribute":"power","val":"off","val_type":"string","instance_id":1},{"id":2,"attribute":"color_temp","val":0,"val_type":"int","instance_id":1},{"id":3,"attribute":"brightness","val":0,"val_type":"int","min":1,"max":100,"instance_id":1}],"permissions":{"update_device":true,"delete_device":true}}}}
saclient ? power -i abcdefg -p demo -v on 
{"event_type":"attribute_change","data":{"attr":{"id":1,"attribute":"power","val":"on","val_type":"string"},"identity":"abcdefg","instance_id":1}}
saclient ? power -i abcdefg -p demo -v off
{"event_type":"attribute_change","data":{"attr":{"id":1,"attribute":"power","val":"off","val_type":"string"},"identity":"abcdefg","instance_id":1}}

4. 进一步了解

如果您手上有智汀家庭云支持的硬件设备,可以安装第三方插件,然后通过智汀APP接入您的设备。

智汀家庭云是一个开源项目,如果如果您熟悉 go 编程语言,想进一步了解我们的项目,可以访问开发环境搭建

智汀家庭云提供插件系统支持第三方设备接入,如果您的设备不在我们的支持列表,可以参考开发您的第一个插件了解插件开发相关内容。

docker 家庭应用,云主机怎么运行软件

5. 常见问题

测试过程中可能会遇到容器中数据不一致的情况,可以通过挂在本地卷的方式解决

使用如下的 docker-compose.yaml 配置:

version: "3.9"

services:
  etcd:
    image: bitnami/etcd:3
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
    ports:
      - 2379:2379
      - 2380:2380
  smartassistant:
    image: zhitingtech/smartassistant:latest
    ports:
      - "8088:8088"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./sadb.db:/app/sadb.db
    depends_on:
      - etcd
  saclient:
    image: zhitingtech/saclient:latest
    network_mode: "host"
    volumes:
      - ./saclient.yaml:/app/app.yaml
    depends_on:
      - smartassistant

本地目录创建一个空的 sadb.db 文件;以及具有以下内容的 saclient.yaml:

token: ""
server: http://127.0.0.1:8088
device: ""

然后按正常流程启动:

输入以下命令启动服务:

docker-compose up
赞(0)
文章名称:《docker 家庭应用,云主机怎么运行软件》
文章链接:https://www.fzvps.com/52918.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!