From 6e6ad94df61dfdb3043d4ab98398ca132c315a2e Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Mon, 23 Mar 2020 00:39:37 +0100
Subject: [PATCH] Integrate dockerbuild (#33168)

* Integrate dockerbuild

* cleanup
---
 .dockerignore                               |  6 ++++++
 Dockerfile                                  | 17 +++++++++++++++++
 azure-pipelines-release.yml                 |  8 +++-----
 build.json                                  | 14 ++++++++++++++
 rootfs/etc/services.d/home-assistant/finish |  5 +++++
 rootfs/etc/services.d/home-assistant/run    |  7 +++++++
 6 files changed, 52 insertions(+), 5 deletions(-)
 create mode 100644 Dockerfile
 create mode 100644 build.json
 create mode 100644 rootfs/etc/services.d/home-assistant/finish
 create mode 100644 rootfs/etc/services.d/home-assistant/run

diff --git a/.dockerignore b/.dockerignore
index 3d8c32cfb92..8144367ede1 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -2,9 +2,15 @@
 .git
 .github
 config
+docs
+
+# Development
+.devcontainer
+.vscode
 
 # Test related files
 .tox
+tests
 
 # Other virtualization methods
 venv
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000000..8853314ae80
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,17 @@
+ARG BUILD_FROM
+FROM ${BUILD_FROM}:6.1.0
+
+WORKDIR /usr/src
+
+## Setup Home Assistant
+COPY . homeassistant/
+RUN pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
+        -r homeassistant/requirements_all.txt -c homeassistant/homeassistant/package_constraints.txt \
+    && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
+        -e ./homeassistant \
+    && python3 -m compileall homeassistant/homeassistant
+
+# Home Assistant S6-Overlay
+COPY rootfs /
+
+WORKDIR /config
diff --git a/azure-pipelines-release.yml b/azure-pipelines-release.yml
index 34827897749..7bf8e3ddfb2 100644
--- a/azure-pipelines-release.yml
+++ b/azure-pipelines-release.yml
@@ -14,7 +14,7 @@ schedules:
     always: true
 variables:
   - name: versionBuilder
-    value: '6.9'
+    value: '7.2.0'
   - group: docker
   - group: github
   - group: twine
@@ -108,11 +108,9 @@ stages:
         docker run --rm --privileged \
           -v ~/.docker:/root/.docker:rw \
           -v /run/docker.sock:/run/docker.sock:rw \
-          -v $(pwd):/homeassistant:ro \
+          -v $(pwd):/data:ro \
           homeassistant/amd64-builder:$(versionBuilder) \
-          --homeassistant $(homeassistantRelease) "--$(buildArch)" \
-          -r https://github.com/home-assistant/hassio-homeassistant \
-          -t generic --docker-hub homeassistant
+          --generic $(homeassistantRelease) "--$(buildArch)" -t /data \
 
         docker run --rm --privileged \
           -v ~/.docker:/root/.docker \
diff --git a/build.json b/build.json
new file mode 100644
index 00000000000..c61a693af1c
--- /dev/null
+++ b/build.json
@@ -0,0 +1,14 @@
+{
+  "image": "homeassistant/{arch}-homeassistant",
+  "build_from": {
+    "aarch64": "homeassistant/aarch64-homeassistant-base:7.0.1",
+    "armhf": "homeassistant/armhf-homeassistant-base:7.0.1",
+    "armv7": "homeassistant/armv7-homeassistant-base:7.0.1",
+    "amd64": "homeassistant/amd64-homeassistant-base:7.0.1",
+    "i386": "homeassistant/i386-homeassistant-base:7.0.1"
+  },
+  "labels": {
+    "io.hass.type": "core"
+  },
+  "version_tag": true
+}
diff --git a/rootfs/etc/services.d/home-assistant/finish b/rootfs/etc/services.d/home-assistant/finish
new file mode 100644
index 00000000000..84b7abcab8b
--- /dev/null
+++ b/rootfs/etc/services.d/home-assistant/finish
@@ -0,0 +1,5 @@
+#!/usr/bin/execlineb -S0
+# ==============================================================================
+# Take down the S6 supervision tree when Home Assistant fails
+# ==============================================================================
+s6-svscanctl -t /var/run/s6/services
\ No newline at end of file
diff --git a/rootfs/etc/services.d/home-assistant/run b/rootfs/etc/services.d/home-assistant/run
new file mode 100644
index 00000000000..a153db56b61
--- /dev/null
+++ b/rootfs/etc/services.d/home-assistant/run
@@ -0,0 +1,7 @@
+#!/usr/bin/with-contenv bashio
+# ==============================================================================
+# Start Home Assistant service
+# ==============================================================================
+cd /config || bashio::exit.nok "Can't find config folder!"
+
+exec python3 -m homeassistant --config /config
-- 
GitLab