36
buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor
Executable file
36
buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Load configs
|
||||
CONFIG_FILE=/mnt/data/hassos.json
|
||||
|
||||
SUPERVISOR="$(jq --raw-output '.supervisor' ${CONFIG_FILE})"
|
||||
DOCKER_ARGS="$(jq --raw-output '.supervisor_args // empty' ${CONFIG_FILE})"
|
||||
APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_FILE})"
|
||||
|
||||
# Init supervisor
|
||||
HASSOS_DATA=/mnt/data/supervisor
|
||||
HASSOS_IMAGE_ID=$(docker inspect --format='{{.Id}}' ${SUPERVISOR})
|
||||
HASSOS_CONTAINER_ID=$(docker inspect --format='{{.Image}}' hassos_supervisor || echo "")
|
||||
|
||||
# Fix wrong AppArmor profiles
|
||||
if ! grep ${APPARMOR} /sys/kernel/security/apparmor/profiles > /dev/null; then
|
||||
APPARMOR=docker-default
|
||||
fi
|
||||
|
||||
runSupervisor() {
|
||||
docker rm --force hassos_supervisor || true
|
||||
docker run --name hassos_supervisor \
|
||||
--security-opt apparmor="${APPARMOR}" \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v /var/run/dbus:/var/run/dbus \
|
||||
-v ${HASSOS_DATA}:/data \
|
||||
-e SUPERVISOR_SHARE=${HASSOS_DATA} \
|
||||
-e SUPERVISOR_NAME=hassos_supervisor \
|
||||
$DOCKER_ARGS \
|
||||
${SUPERVISOR}
|
||||
}
|
||||
|
||||
# Run supervisor
|
||||
mkdir -p ${HASSOS_DATA}
|
||||
([ "${HASSOS_IMAGE_ID}" = "${HASSOS_CONTAINER_ID}" ] && docker start --attach hassos_supervisor) || runSupervisor
|
||||
Reference in New Issue
Block a user