发布你的插件
有两种不同的发布插件的方式。一种是将预构建的容器发布到Docker Hub,另一种选择是让用户在他们的Hass.io实例上本地构建容器。
预构建容器
使用预构建容器时,开发者负责在自己的机器上为每种架构构建镜像,并将结果推送到Docker Hub。这对用户有很多好处。作为用户,只需下载最终的容器,下载完成后即可启动并运行。这使得安装过程快速且几乎没有失败的可能性。这是首选方法。
我们已经自动化了构建和发布插件的过程。请参阅下面的说明。
本地构建容器
从Hass.io 0.26版本开始,可以分发将在用户机器上构建的插件。优点是作为开发者,很容易测试一个想法并查看人们是否对你的插件感兴趣。这种方法包括安装和可能的代码编译。这意味着安装这样的插件比较慢,并且比上述预构建解决方案对用户的SD卡/硬盘造成更多的磨损。如果容器的一个依赖项发生变化或不再可用,它也有更高的失败几率。
当你在试用插件并查看是否有人对你的工作感兴趣时,可以使用此选项。一旦你建立了一个成熟的仓库,请迁移到将构建推送到Docker Hub,因为这会极大地改善用户体验。未来我们将在插件商店中标记本地构建的插件以警告用户。
发布插件到Docker Hub的构建脚本
所有插件都是简单的Docker容器。在你的插件config.json
中,你指定将为你的插件安装的Docker镜像:
{
…
"image": "myhub/image-{arch}-addon-name",
…
}
你可以在镜像名称中使用{arch}
,以便通过一个配置文件支持多种架构。当我们加载镜像时,它将被替换为用户的架构。
Hass.io假设你的插件仓库的master
分支与Docker Hub上的最新标签匹配。当你构建新版本时,建议你使用另一个分支,例如build
。将插件推送到Docker Hub后,你可以将此分支合并到master
。
自定义插件
你需要一个Docker Hub账户来创建自己的插件。下载我们的构建脚本并运行以下命令之一。
对于Git仓库:
# 仅测试:
./create_hassio_addon.sh -a amd64 -s addon-slug -r https://github.com/xy/addons -b branchname
# 推送到Docker Hub:
./create_hassio_addon.sh -a amd64 -s addon-slug -r https://github.com/xy/addons -b branchname -p
# 为所有支持的架构创建:
./create_addon_all.sh -s addon-slug -r https://github.com/xy/addons -b branchname -p
对于本地仓库:
# 仅测试:
./create_hassio_addon.sh -a amd64 -s addon-slug -l /home/xy/my_local_repo
# 推送到Docker Hub:
./create_hassio_addon.sh -a amd64 -s addon-slug -l /home/xy/my_local_repo -p