hassio-build/homeassistant/base/Dockerfile
2017-10-22 16:02:38 +02:00

137 lines
4.2 KiB
Docker

ARG BUILD_FROM
FROM $BUILD_FROM
# Add env
ENV LANG C.UTF-8
####
# Install core
RUN apk add --no-cache \
python3 \
bsd-compat-headers \
libgcc \
libstdc++ \
libpng \
tiff \
libjpeg \
libjpeg-turbo \
libressl \
musl \
&& ln -s /usr/include/locale.h /usr/include/xlocale.h
####
## Build library
WORKDIR /usr/src/
# ssocr
RUN apk add --no-cache git gcc make musl-dev imlib2-dev imlib2 \
&& git clone --depth 1 https://github.com/auerswal/ssocr \
&& cd ssocr \
&& make \
&& make install \
&& apk del git gcc make imlib2-dev musl-dev \
&& rm -rf /usr/src/ssocr
# OpenCV/scipy
ENV PYTHONPATH /usr/local/lib/python3.6/site-packages
RUN apk add --no-cache \
gcc g++ musl-dev python3-dev cmake make ncurses linux-headers \
lapack-dev lapack \
gfortran libgfortran \
ffmpeg-dev ffmpeg-libs \
libwebp-dev libwebp \
git libpng-dev libjpeg-turbo-dev tiff-dev \
&& pip3 install --no-cache-dir numpy scipy \
&& git clone --depth 1 -b 3.2.0 https://github.com/opencv/opencv \
&& cd opencv \
&& mkdir -p build \
&& cd build \
&& cmake ../ -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF \
&& make \
&& make install \
&& apk del \
gcc g++ musl-dev python3-dev lapack-dev linux-headers \
gfortran cmake make ncurses ffmpeg-dev \
git libpng-dev libjpeg-turbo-dev tiff-dev libwebp-dev \
&& rm -rf /usr/src/opencv
# Dlib
RUN apk add --no-cache \
boost boost-python3 boost-dev \
cmake ncurses make g++ python3-dev \
&& pip3 install --no-cache-dir dlib \
&& apk del boost-dev cmake ncurses make g++ python3-dev
# OpenALPR
RUN apk add --no-cache \
cmake ncurses make g++ tesseract-ocr-dev tesseract-ocr \
git autoconf automake \
&& git clone --depth 1 -b REL_1_2_0 https://github.com/log4cplus/log4cplus \
&& cd log4cplus \
&& ./configure \
&& sed -i "s/1\.14/1.15/g" aclocal.m4 \
&& sed -i "s/1\.14/1.15/g" Makefile.in \
&& make \
&& make install \
&& rm -rf /usr/src/log4cplus
RUN git clone --depth 1 -b v2.3.0 https://github.com/openalpr/openalpr \
&& cd openalpr/src \
&& mkdir -p build \
&& cd build \
&& cmake ../ -DWITH_TESTS=FALSE -DWITH_BINDING_JAVA=FALSE -DWITH_BINDING_PYTHON=FALSE -DWITH_BINDING_GO=FALSE -DWITH_DAEMON=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr/local \
&& make \
&& make install \
&& apk del \
cmake ncurses make g++ tesseract-ocr-dev \
git autoconf automake \
&& rm -rf /usr/src/openalpr
##
# Install component packages
RUN apk add --no-cache \
ffmpeg \
nmap \
libcec \
net-tools \
bluez \
curl \
libsodium \
openssh-client \
libffi \
glib
####
## Install pip module for component/homeassistant
RUN apk add --no-cache \
mariadb-client-libs postgresql-libs freetds \
&& apk add --no-cache --virtual .build-dependencies \
gcc g++ musl-dev python3-dev make \
mariadb-dev postgresql-dev freetds-dev \
&& pip3 install --no-cache-dir cython \
&& pip3 install --no-cache-dir mysqlclient psycopg2 \
&& pip3 install --no-cache-dir https://github.com/wayfair/pymssql/archive/v2.1.3.0.0.1.zip \
&& pip3 install --no-cache-dir cchardet uvloop aiodns \
&& apk del .build-dependencies
####
## Temporary Fix for Mi Flora. Remove on release of Alpine 3.7
RUN apk add --no-cache \
readline \
&& apk add --no-cache --virtual .build-dependencies \
gcc g++ make musl-dev dbus-dev libusb-compat-dev eudev-dev \
libical-dev readline-dev glib-dev linux-headers \
autoconf automake libtool \
&& mkdir -p bluez-deprecated \
&& cd bluez-deprecated \
&& curl -so bluez-5.44.tar.gz https://www.kernel.org/pub/linux/bluetooth/bluez-5.44.tar.gz \
&& tar -xzf bluez-5.44.tar.gz \
&& cd bluez-5.44 \
&& ./configure \
--enable-deprecated \
--disable-systemd \
--enable-library \
&& make \
&& mv attrib/gatttool /usr/bin/ \
&& cd ../../ \
&& rm -fr bluez-deprecated \
&& apk del .build-dependencies