For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /developers/blog/2020-04-12-s6-overlay.md.

我们 Docker 容器的 S6 Overlay

Home Assistant 使用许多不同的 Docker 容器用于各种目的。不仅是可作为 Docker 容器提供的 Home Assistant Core,我们的 Supervisor 和所有 add-ons 也都在利用 Docker。

在许多情况下,我们需要在容器中运行多个进程,并且都需要被管理。我们过去使用简单的 Bash 脚本来完成这件事,但很快意识到我们需要一个真正的进程管理器来处理这件事。

我们决定使用 S6 Overlay init system,它基于出色的 S6 工具集,提供进程监督和管 理、日志记录以及系统初始化。

S6 Overlay 已添加到我们的 Docker base images 中,每个 Home Assistant 发布的 Docker 镜像都使用它。

所有容器都已更新,更改由 Home Assistant Supervisor 自动处理;对于 Home Assistant 用户来说,没有明显的 影响。

对于在 Docker 上使用 Home Assistant Core 容器的用户,这可能会影响你运行或启动容器的方式。如果你以覆写 Docker entry point 或 command 的方式运行 Home Assistant Core 容器,你需要调整这些设置。例如,一些容器 管理系统(如 Portainer 和 Synology)会自动为你覆写这些,因此你会受到影响。

在这些情况下:

  • Entry point 已更改为:/init
  • Command (CMD) 已更改为: (空/未设置)

如果你覆写 command endpoint 以启动 Home Assistant,entry point 中的 init system 仍将在后台处于活动状态, 并第二次启动 Home Assistant。这可能导致意外行为。