Skip to content

Commit

Permalink
Move docker installation scripts to virtualization/Docker path. Split…
Browse files Browse the repository at this point in the history
…s out openalpr to seperate script. (home-assistant#5676)
  • Loading branch information
michaelarnauts authored and balloob committed Feb 1, 2017
1 parent 89ec752 commit 8247acb
Show file tree
Hide file tree
Showing 10 changed files with 155 additions and 132 deletions.
8 changes: 5 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ MAINTAINER Paulus Schoutsen <Paulus@PaulusSchoutsen.nl>
#ENV INSTALL_TELLSTICK no
#ENV INSTALL_OPENALPR no
#ENV INSTALL_FFMPEG no
#ENV INSTALL_OPENZWAVE no
#ENV INSTALL_LIBCEC no
#ENV INSTALL_PHANTOMJS no

VOLUME /config
Expand All @@ -13,8 +15,8 @@ RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Copy build scripts
COPY script/setup_docker_prereqs script/build_python_openzwave script/build_libcec script/install_phantomjs script/
RUN script/setup_docker_prereqs
COPY virtualization/Docker/ virtualization/Docker/
RUN virtualization/Docker/setup_docker_prereqs

# Install hass component dependencies
COPY requirements_all.txt requirements_all.txt
Expand All @@ -24,4 +26,4 @@ RUN pip3 install --no-cache-dir -r requirements_all.txt && \
# Copy source
COPY . .

CMD [ "python", "-m", "homeassistant", "--config", "/config" ]
CMD [ "python", "-m", "homeassistant", "--config", "/config" ]
121 changes: 0 additions & 121 deletions script/setup_docker_prereqs

This file was deleted.

14 changes: 11 additions & 3 deletions virtualization/Docker/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,22 @@
FROM python:3.5
MAINTAINER Paulus Schoutsen <Paulus@PaulusSchoutsen.nl>

# Uncomment any of the following lines to disable the installation.
#ENV INSTALL_TELLSTICK no
#ENV INSTALL_OPENALPR no
#ENV INSTALL_FFMPEG no
#ENV INSTALL_OPENZWAVE no
#ENV INSTALL_LIBCEC no
#ENV INSTALL_PHANTOMJS no

VOLUME /config

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Copy build scripts
COPY script/setup_docker_prereqs script/build_python_openzwave script/build_libcec script/
RUN script/setup_docker_prereqs
COPY virtualization/Docker/ virtualization/Docker/
RUN virtualization/Docker/setup_docker_prereqs

# Install hass component dependencies
COPY requirements_all.txt requirements_all.txt
Expand Down Expand Up @@ -40,4 +48,4 @@ RUN tox -e py35 --notest
# Copy source
COPY . .

CMD [ "python", "-m", "homeassistant", "--config", "/config" ]
CMD [ "python", "-m", "homeassistant", "--config", "/config" ]
16 changes: 16 additions & 0 deletions virtualization/Docker/scripts/ffmpeg
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
# Sets up ffmpeg.

# Stop on errors
set -e

PACKAGES=(
ffmpeg
)

# Add jessie-backports
echo "Adding jessie-backports"
echo "deb http://deb.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
apt-get update

apt-get install -y --no-install-recommends -t jessie-backports ${PACKAGES[@]}
4 changes: 2 additions & 2 deletions script/build_libcec → virtualization/Docker/scripts/libcec
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/sh
# Sets up and builds libcec to be used with Home Assistant.
# Sets up libcec.
# Dependencies that need to be installed:
# apt-get install cmake libudev-dev libxrandr-dev swig

Expand Down Expand Up @@ -44,4 +44,4 @@ git submodule update --init src/platform
make
make install
ldconfig
)
)
29 changes: 29 additions & 0 deletions virtualization/Docker/scripts/openalpr
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash
# Sets up openalpr.

# Stop on errors
set -e

PACKAGES=(
# homeassistant.components.image_processing.openalpr_local
libopencv-dev libtesseract-dev libleptonica-dev liblog4cplus-dev
)

apt-get install -y --no-install-recommends ${PACKAGES[@]}

# Clone the latest code from GitHub
git clone https://github.com/openalpr/openalpr.git /usr/local/src/openalpr

# Setup the build directory
cd /usr/local/src/openalpr/src
mkdir -p build
cd build

# Setup the compile environment
cmake -DWITH_TEST=FALSE -DWITH_BINDING_JAVA=FALSE --DWITH_BINDING_PYTHON=FALSE --DWITH_BINDING_GO=FALSE -DWITH_DAEMON=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ..

# compile the library
make

# Install the binaries/libraries to your local system (prefix is /usr/local)
make install
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# Sets up phantomjs to be used with Home Assistant.
# Sets up phantomjs.

# Stop on errors
set -e
Expand All @@ -12,4 +12,4 @@ mkdir -p build && cd build
curl -LSO https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2
tar -xjf phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2
mv phantomjs-$PHANTOMJS_VERSION-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
/usr/bin/phantomjs -v
/usr/bin/phantomjs -v
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/sh
# Sets up and builds python open zwave to be used with Home Assistant.
# Sets up python-openzwave.
# Dependencies that need to be installed:
# apt-get install cython3 libudev-dev python3-sphinx python3-setuptools

Expand Down Expand Up @@ -27,3 +27,6 @@ git checkout python3
pip3 install --upgrade cython==0.24.1
PYTHON_EXEC=`which python3` make build
PYTHON_EXEC=`which python3` make install

mkdir -p /usr/local/share/python-openzwave
cp -R openzwave/config /usr/local/share/python-openzwave/config
17 changes: 17 additions & 0 deletions virtualization/Docker/scripts/tellstick
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash
# Sets up tellstick.

# Stop on errors
set -e

PACKAGES=(
# homeassistant.components.tellstick
libtelldus-core2
)

# Add Tellstick repository
echo "deb http://download.telldus.com/debian/ stable main" >> /etc/apt/sources.list.d/telldus.list
wget -qO - http://download.telldus.se/debian/telldus-public.key | apt-key add -

apt-get update
apt-get install -y --no-install-recommends ${PACKAGES[@]}
69 changes: 69 additions & 0 deletions virtualization/Docker/setup_docker_prereqs
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash
# Install requirements and build dependencies for Home Assinstant in Docker.

# Stop on errors
set -e

INSTALL_TELLSTICK="${INSTALL_TELLSTICK:-yes}"
INSTALL_OPENALPR="${INSTALL_OPENALPR:-yes}"
INSTALL_FFMPEG="${INSTALL_FFMPEG:-yes}"
INSTALL_OPENZWAVE="${INSTALL_OPENZWAVE:-yes}"
INSTALL_LIBCEC="${INSTALL_LIBCEC:-yes}"
INSTALL_PHANTOMJS="${INSTALL_PHANTOMJS:-yes}"

# Required debian packages for running hass or components
PACKAGES=(
# build-essential is required for python pillow module on non-x86_64 arch
build-essential
# homeassistant.components.image_processing.openalpr_local
libxrandr-dev
# homeassistant.components.device_tracker.nmap_tracker
nmap net-tools libcurl3-dev
# homeassistant.components.device_tracker.bluetooth_tracker
bluetooth libglib2.0-dev libbluetooth-dev
)

# Required debian packages for building dependencies
PACKAGES_DEV=(
cmake git
# python-openzwave
cython3 libudev-dev
# libcec
swig
)

# Install packages
apt-get update
apt-get install -y --no-install-recommends ${PACKAGES[@]} ${PACKAGES_DEV[@]}

if [ "$INSTALL_TELLSTICK" == "yes" ]; then
virtualization/Docker/scripts/tellstick
fi

if [ "$INSTALL_OPENALPR" == "yes" ]; then
virtualization/Docker/scripts/openalpr
fi

if [ "$INSTALL_FFMPEG" == "yes" ]; then
virtualization/Docker/scripts/ffmpeg
fi

if [ "$INSTALL_OPENZWAVE" == "yes" ]; then
virtualization/Docker/scripts/python_openzwave
fi

if [ "$INSTALL_LIBCEC" == "yes" ]; then
virtualization/Docker/scripts/libcec
fi

if [ "$INSTALL_PHANTOMJS" == "yes" ]; then
virtualization/Docker/scripts/phantomjs
fi

# Remove packages
apt-get remove -y --purge ${PACKAGES_DEV[@]}
apt-get -y --purge autoremove

# Cleanup
apt-get clean
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* build/

0 comments on commit 8247acb

Please sign in to comment.