Script that build homeassistant docker for multible arch

This commit is contained in:
Pascal Vizeli 2017-03-20 00:52:54 +01:00
parent 3ec832184c
commit ebae265aa8
2 changed files with 75 additions and 2 deletions

View File

@ -9,7 +9,7 @@ cleanup() {
echo "[INFO] Cleanup."
# Stop docker container
echo "[INFO] Cleaning up yocto-build container."
echo "[INFO] Cleaning up hassio-build container."
docker stop $BUILD_CONTAINER_NAME 2> /dev/null || true
docker rm --volumes $BUILD_CONTAINER_NAME 2> /dev/null || true
@ -21,7 +21,7 @@ trap 'cleanup fail' SIGINT SIGTERM
# Sanity checks
if [ "$#" -ne 2 ]; then
echo "Usage: create_hassio_supervisor.sh <MACHINE> <TAG>|NONE"
echo "Usage: create_hassio_supervisor.sh <ARCH> <TAG>|NONE"
echo "Optional environment: BUILD_DIR"
exit 1
fi
@ -65,6 +65,7 @@ docker run --rm \
/run-docker.sh
echo "[INFO] cleanup WORKSPACE"
cd $BUILD_DIR
rm -rf $WORKSPACE
cleanup

View File

@ -0,0 +1,72 @@
#!/bin/bash
set -e
BUILD_CONTAINER_NAME=homeassistant-build-$$
DOCKER_REPO=pvizeli
cleanup() {
echo "[INFO] Cleanup."
# Stop docker container
echo "[INFO] Cleaning up homeassistant-build container."
docker stop $BUILD_CONTAINER_NAME 2> /dev/null || true
docker rm --volumes $BUILD_CONTAINER_NAME 2> /dev/null || true
if [ "$1" == "fail" ]; then
exit 1
fi
}
trap 'cleanup fail' SIGINT SIGTERM
# Sanity checks
if [ "$#" -ne 2 ]; then
echo "Usage: create_homeassistant.sh <HASS_VERS> <MACHINE>"
echo "Optional environment: BUILD_DIR"
exit 1
fi
# Get the absolute script location
pushd `dirname $0` > /dev/null 2>&1
SCRIPTPATH=`pwd`
popd > /dev/null 2>&1
HASS_VERS=$1
MACHINE=$2
BASE_IMAGE="resin\/${MACHINE}-python:3.6"
DOCKER_TAG=$1
DOCKER_IMAGE=${MACHINE}-homeassistant
BUILD_DIR=${BUILD_DIR:=$SCRIPTPATH}
WORKSPACE=${BUILD_DIR:=$SCRIPTPATH}/hass
# setup docker
echo "[INFO] Setup docker for homeassistant"
mkdir -p $BUILD_DIR
echo "[INFO] load homeassistant"
cd $BUILD_DIR && git clone https://github.com/home-assistant/home-assistant hass
cd hass && git checkout $HASS_VERS
sed -i "s/FROM.*/${BASE_IMAGE}/g" Dockerfile
# Run build
echo "[INFO] start docker build"
docker stop $BUILD_CONTAINER_NAME 2> /dev/null || true
docker rm --volumes $BUILD_CONTAINER_NAME 2> /dev/null || true
docker run --rm \
-v $WORKSPACE:/docker \
-v ~/.docker:/root/.docker \
-e DOCKER_REPO=$DOCKER_REPO \
-e DOCKER_IMAGE=$DOCKER_IMAGE \
-e DOCKER_TAG=$DOCKER_TAG \
--name $BUILD_CONTAINER_NAME \
--privileged \
pvizeli/docker-build-env \
/run-docker.sh
echo "[INFO] cleanup WORKSPACE"
cd $BUILD_DIR
rm -rf $WORKSPACE
cleanup
exit 0