Home Assistant auf Docker umgestellt

Ich hat­te bis­lang Home Assi­stant in einem Python vir­tu­al envi­ron­ment zu lau­fen — war­um? Nun, es gibt wohl ein Image auf SD-Kar­te: Ein­schie­ben, boo­ten, HA läuft. Aller­dings ist ein Pi viel zu potent, als daß man ihn mit einer ein­zi­gen Auf­ga­be belei­di­gend unter­for­dern wollte.
Da kam die venv-Vari­an­te gera­de recht: Man kann rum­schwei­nen, Python-Packa­ges nach­in­stal­lie­ren nach Gus­to, ohne das sys­tem-Python anfas­sen zu müs­sen. Mit einer Ein­schrän­kung: Man ist an das System-Python(3) gebun­den, und das ist bei einem aktu­el­len Raspbi­an 3.7.3 — und HA mault das seit Mona­ten als depre­ca­ted an.
Ein neue­res Python gibt es aber nicht als Paket (jeden­falls habe ich nichts gefun­den). Also ich bin ja ein uber­he­ro, habe vie­le vie­le Jah­re send­mail aus den Quel­len über­setzt und mei­ne aller­ers­te sendmail.cf tat­säch­lich sel­ber geschrie­ben (und danach m4 ent­deckt), also so ein pop­li­ges Python sel­ber bau­en, ist ja wohl kei­ne Her­aus­fo­de­rung! Stellt sich raus: In der Tat, ist es nicht, geht ganz smooth. Also schnell noch Alia­se gesetzt und los: python-venv gestar­tet, HA gestartet.

Wel­co­me tot the depen­den­ci­es hell!¹

Ach was da alles nicht ver­füg­bar ist! xz,sqlite3 — danach habe ich aufgegeben.

Die Lösung?

systemctl stop home-assistant@homeassistant.service
systemctl disable home-assistant@homeassistant.service
docker run --init -d --name="home-assistant" -e "TZ=Europe/Berlin" -v /home/homeassistant/.homeassistant:/config/ --net=host --restart=always homeassistant/raspberrypi4-homeassistant:stable

Löppt. So ein­fach kann es sein!

root@r4:~# python3 --version
Python 3.7.3
root@r4:~# docker exec -ti home-assistant python3 --version
Python 3.8.7
root@r4:~#

Dann will man natür­lich gleich Watch­tower haben. Das meckert zwar beim Star­ten, läuft dann aber wohl doch:

root@r4:~# docker run -d --name watchtower --restart always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm/v7) and no specific platform was requested
33f87b78d1ba24793b0272db247f7f4fc9315e0e4aee335128e1049db6fe3aa3
root@r4:~# docker ps
CONTAINER ID   IMAGE                                             COMMAND         CREATED          STATUS          PORTS      NAMES
33f87b78d1ba   containrrr/watchtower                             "/watchtower"   13 seconds ago   Up 11 seconds   8080/tcp   watchtower
bfebd671b8fd   homeassistant/raspberrypi4-homeassistant:stable   "/init"         43 minutes ago   Up 43 minutes              home-assistant
root@r4:~#

Wun­der­bar! War­um habe ich das nicht seit lan­gem so???


¹ OK, wer schon mal Ruby Depen­den­ci­es hin­be­kom­men hat, der wird das­sel­be bei Python noch voll­trun­ken hinbekommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.