Home Assistant: net rpc shutdown in Docker
Die WoL Component von Home Assistant wäre nicht vollständig, wenn sie nicht auch dazu taugen würde den Rechner wieder auszuschalten.
Für einen Windows host geht dies über das Netzwerk mittels net rpc shutdown
. Diese Binary ist Teil von samba-common-bin.
samba-common-bin ist jedoch nicht Teil des offiziellen Docker-Images von Home assistant :-/
Wie also das Problem lösen?
Was ist die einfachste Möglichkeit eine Binary ohne weitere Abhängigkeiten zu bekommen? Richtig. Statisch kompilieren.
Mehr als 2h später hatte ich dann auch eine pseudo-statische net
binary, welche ich innerhalb des Docker Images mittels mount verfügbar machen konnte.
Shutdown funktioniert. Alles super. Schlafen.
Am nächsten Morgen fiel mir dann auf, dass ich ja Docker nutze und das ganze doch eigentlich viel einfacher gehen müsste.
Und in der Tat:
Jo, geht viel einfacher.
FROM homeassistant/home-assistant:latest
custom_homeassistant.dockerfile
RUN apt-get update && apt-get install -y samba-common-bin
Die CMD
Direktive (welche Home assistant startet), sowie auch alle weiteren RUN
Kommandos werden natürlich vom offiziellen Image vererbt.
Hätte mir doch nur jemand früher gesagt, dass ich Docker nutze.
version: '2'
Bonus: docker_compose.yaml
services:
homeassistant:
build:
context: .
dockerfile: custom_homeassistant.dockerfile