Lo que vamos a hacer es crear una tarjeta en Home assistant con dos botones que nos sirvan para arrancar y parar contenedores docker que tenemos en la misma instalación de docker, de forma que no hará falta ejecutar un comando, o entrar en portainer para arrancar y parar los contenedores.
En el fichero configuration.yaml añadiremos los comando que queremos utilizar de la siguiente forma
shell_command:
start_docker_container: "docker start nombre_del_contenedor"
stop_docker_container: "docker stop nombre_del_contenedor"
Tendremos que sustituir ‘nombre_del_contenedor’ por el que queramos arrancar y parar.
Lo siguiente será añadir la tarjeta necesaria en home assistant para poder pulsar los botones, un ejemplo de tarjeta sería el siguiente.
type: entities
entities:
- type: button
icon: mdi:file-arrow-up-down
name: Iniciar Contenedor
tap_action:
action: call-service
service: shell_command.start_docker_container
- type: button
icon: mdi:file-cancel-outline
name: Parar Contenedor
tap_action:
action: call-service
service: shell_command.stop_docker_container
Ahora solo falta hacer que home assistant pueda «hablar» con la instalación de docker, para poder esto depende de con que permisos esté funcionando el contenedor de home asistant.
Una forma de hacerlo es añadir el volumen siguiente para que se pueda conectar al shocket
-v /var/run/docker.sock:/var/run/docker.sock
Esto permitirá al contenedor comunicarse con el daemon de docker
El Docker compose que utilizas en el stack de portainer para arrancar el contenedor podría quedar asi.
version: '3'
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /path/to/home-assistant/config:/config
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
privileged: true
network_mode: host
tras actualizar el stack tenemos que habrir una consola en el contenedor y ejecutar el siguiente comando para instalar la utilidad ‘Docker’ dentro del contenedor de home assistant.
apk add --no-cache docker-cli
Ahora después de reiniciar el contenedor de home assistant ya deverías poder arrancar y parar el contenedor con los botones de la tarjeta de Home assistant.