Skip to content

Commit

Permalink
fixing local debug
Browse files Browse the repository at this point in the history
  • Loading branch information
bigmoby committed May 18, 2021
1 parent e03df46 commit 68e9033
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 14 deletions.
14 changes: 13 additions & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,19 @@ RUN \
xz-utils

# Install docker
RUN curl -fsSL https://get.docker.com | sh -
RUN apt-get update && apt-get install -y --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
software-properties-common \
gpg-agent \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
&& add-apt-repository "deb https://download.docker.com/linux/debian $(lsb_release -cs) stable" \
&& apt-get update && apt-get install -y --no-install-recommends \
docker-ce \
docker-ce-cli \
containerd.io \
&& rm -rf /var/lib/apt/lists/*

# Install shellcheck
RUN \
Expand Down
8 changes: 6 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
// Based on https://github.com/issacg/hassio-addon-devcontainer
{
"name": "Home Assistant Add-Ons",
"context": "..",
"dockerFile": "Dockerfile",
"appPort": ["7123:8123", "7357:4357"],
"postCreateCommand": "pre-commit install",
"postStartCommand": "service docker start",
"runArgs": ["-e", "GIT_EDITOR=code --wait", "--privileged"],
"containerEnv": {
"WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}"
},
"extensions": [
"timonwong.shellcheck",
"esbenp.prettier-vscode"
"esbenp.prettier-vscode",
"marklarah.pre-commit-vscode"
],
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
Expand Down
41 changes: 34 additions & 7 deletions .devcontainer/supervisor.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
#!/bin/bash
set -eE

SUPERVISOR_VERSON="$(curl -s https://version.home-assistant.io/dev.json | jq -e -r '.supervisor')"
DOCKER_TIMEOUT=30
DOCKER_PID=0


function start_docker() {
local starttime
local endtime

if grep -q 'Alpine' /proc/version; then
# The docker daemon does not start when running Alpine backed WSL2 without adjusting iptables
update-alternatives --set iptables /usr/sbin/iptables-legacy || echo "Fails adjust iptables"
update-alternatives --set ip6tables /usr/sbin/iptables-legacy || echo "Fails adjust ip6tables"
fi

echo "Starting docker."
dockerd 2> /dev/null &
DOCKER_PID=$!
Expand All @@ -28,7 +34,6 @@ function start_docker() {
echo "Docker was initialized"
}


function stop_docker() {
local starttime
local endtime
Expand Down Expand Up @@ -74,18 +79,20 @@ function run_supervisor() {
mkdir -p /tmp/supervisor_data
docker run --rm --privileged \
--name hassio_supervisor \
--privileged \
--security-opt seccomp=unconfined \
--security-opt apparmor:unconfined \
-v /run/docker.sock:/run/docker.sock \
-v /run/dbus:/run/dbus \
-v /tmp/supervisor_data:/data \
-v "/workspaces/addon-wireguard-client":/data/addons/local \
-v /run/docker.sock:/run/docker.sock:rw \
-v /run/dbus:/run/dbus:ro \
-v /run/udev:/run/udev:ro \
-v /tmp/supervisor_data:/data:rw \
-v "$WORKSPACE_DIRECTORY":/data/addons/local:rw \
-v /etc/machine-id:/etc/machine-id:ro \
-e SUPERVISOR_SHARE="/tmp/supervisor_data" \
-e SUPERVISOR_NAME=hassio_supervisor \
-e SUPERVISOR_DEV=1 \
-e SUPERVISOR_MACHINE="qemux86-64" \
homeassistant/amd64-hassio-supervisor:dev
"homeassistant/amd64-hassio-supervisor:${SUPERVISOR_VERSON}"
}

function init_dbus() {
Expand All @@ -106,13 +113,33 @@ function init_dbus() {
dbus-daemon --system --print-address
}

function init_udev() {
if pgrep systemd-udevd; then
echo "udev is running"
return 0
fi

echo "Startup udev"

# cleanups
mkdir -p /run/udev

# run
/lib/systemd/systemd-udevd --daemon
sleep 3
udevadm trigger && udevadm settle
}

echo "Start Test-Env"

start_docker
trap "stop_docker" ERR

docker system prune -f

cleanup_lastboot
cleanup_docker
init_dbus
init_udev
run_supervisor
stop_docker
7 changes: 3 additions & 4 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,17 @@
{
"label": "Start Home Assistant",
"type": "shell",
"command": "/workspaces/addon-wireguard-client/.devcontainer/supervisor.sh",
"command": "./.devcontainer/supervisor.sh",
"group": {
"kind": "test",
"isDefault": true
"isDefault": true,
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": []
},
{
},{
"label": "Run Home Assistant CLI",
"type": "shell",
"command": "docker exec -ti hassio_cli /usr/bin/cli.sh",
Expand Down

0 comments on commit 68e9033

Please sign in to comment.