From a663dbada0c799e7107a8bcf1c88c30121de1a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Arnauts?= Date: Fri, 30 Jun 2017 17:07:33 +0200 Subject: [PATCH] Docker cleanup. (#8226) --- .dockerignore | 14 ++++++++++++- Dockerfile | 5 +++++ virtualization/Docker/Dockerfile.dev | 6 +++++- virtualization/Docker/scripts/coap_client | 3 +++ virtualization/Docker/scripts/libcec | 2 +- virtualization/Docker/scripts/openalpr | 7 +++++-- virtualization/Docker/scripts/phantomjs | 2 +- virtualization/Docker/scripts/ssocr | 23 +++++++++------------- virtualization/Docker/setup_docker_prereqs | 6 +++--- 9 files changed, 45 insertions(+), 23 deletions(-) diff --git a/.dockerignore b/.dockerignore index e64c35dd6b848..3d8c32cfb926e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,14 @@ -.tox +# General files .git +.github +config + +# Test related files +.tox + +# Other virtualization methods +venv +.vagrant + +# Temporary files +**/__pycache__ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 52eec795fed1d..a877f154037f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,7 @@ +# Notice: +# When updating this file, please also update virtualization/Docker/Dockerfile.dev +# This way, the development image and the production image are kept in sync. + FROM python:3.6 MAINTAINER Paulus Schoutsen @@ -21,6 +25,7 @@ RUN virtualization/Docker/setup_docker_prereqs # Install hass component dependencies COPY requirements_all.txt requirements_all.txt + # Uninstall enum34 because some depenndecies install it but breaks Python 3.4+. # See PR #8103 for more info. RUN pip3 install --no-cache-dir -r requirements_all.txt && \ diff --git a/virtualization/Docker/Dockerfile.dev b/virtualization/Docker/Dockerfile.dev index 707e61fa37ed6..c92294ccd110a 100644 --- a/virtualization/Docker/Dockerfile.dev +++ b/virtualization/Docker/Dockerfile.dev @@ -25,8 +25,12 @@ RUN virtualization/Docker/setup_docker_prereqs # Install hass component dependencies COPY requirements_all.txt requirements_all.txt + +# Uninstall enum34 because some depenndecies install it but breaks Python 3.4+. +# See PR #8103 for more info. RUN pip3 install --no-cache-dir -r requirements_all.txt && \ - pip3 install --no-cache-dir mysqlclient psycopg2 uvloop cchardet + pip3 install --no-cache-dir mysqlclient psycopg2 uvloop cchardet && \ + pip3 uninstall -y enum34 # BEGIN: Development additions diff --git a/virtualization/Docker/scripts/coap_client b/virtualization/Docker/scripts/coap_client index fa16d14c0cba6..82606c5f14d45 100755 --- a/virtualization/Docker/scripts/coap_client +++ b/virtualization/Docker/scripts/coap_client @@ -6,6 +6,9 @@ set -e apt-get install -y --no-install-recommends git autoconf automake libtool +cd /usr/src/app/ +mkdir -p build && cd build + git clone --depth 1 --recursive -b dtls https://github.com/home-assistant/libcoap.git cd libcoap ./autogen.sh diff --git a/virtualization/Docker/scripts/libcec b/virtualization/Docker/scripts/libcec index 44e90c4003056..56cbaeb16d7b6 100755 --- a/virtualization/Docker/scripts/libcec +++ b/virtualization/Docker/scripts/libcec @@ -12,7 +12,7 @@ PYTHON_LDLIBRARY=$(python -c 'from distutils import sysconfig; print(sysconfig.g PYTHON_LIBRARY="${PYTHON_LIBDIR}/${PYTHON_LDLIBRARY}" PYTHON_INCLUDE_DIR=$(python -c 'from distutils import sysconfig; print(sysconfig.get_python_inc())') -cd "$(dirname "$0")/.." +cd /usr/src/app/ mkdir -p build && cd build if [ ! -d libcec ]; then diff --git a/virtualization/Docker/scripts/openalpr b/virtualization/Docker/scripts/openalpr index b8fe8d44338d6..5ee36ecd4ed66 100755 --- a/virtualization/Docker/scripts/openalpr +++ b/virtualization/Docker/scripts/openalpr @@ -11,11 +11,14 @@ PACKAGES=( apt-get install -y --no-install-recommends ${PACKAGES[@]} +cd /usr/src/app/ +mkdir -p build && cd build + # Clone the latest code from GitHub -git clone --depth 1 https://github.com/openalpr/openalpr.git /usr/local/src/openalpr +git clone --depth 1 https://github.com/openalpr/openalpr.git openalpr # Setup the build directory -cd /usr/local/src/openalpr/src +cd openalpr/src/ mkdir -p build cd build diff --git a/virtualization/Docker/scripts/phantomjs b/virtualization/Docker/scripts/phantomjs index 7c1e1dd353685..7700b08f29353 100755 --- a/virtualization/Docker/scripts/phantomjs +++ b/virtualization/Docker/scripts/phantomjs @@ -6,7 +6,7 @@ set -e PHANTOMJS_VERSION="2.1.1" -cd "$(dirname "$0")/.." +cd /usr/src/app/ mkdir -p build && cd build curl -LSO https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 diff --git a/virtualization/Docker/scripts/ssocr b/virtualization/Docker/scripts/ssocr index 137f20d70c299..7054951407a84 100755 --- a/virtualization/Docker/scripts/ssocr +++ b/virtualization/Docker/scripts/ssocr @@ -10,20 +10,15 @@ PACKAGES=( apt-get install -y --no-install-recommends ${PACKAGES[@]} -# Clone the latest code from GitHub -git clone --depth 1 https://github.com/auerswal/ssocr.git /usr/local/src/ssocr - -# Build ssocr -( - # Setup the build directory - cd /usr/local/src/ssocr +cd /usr/src/app/ +mkdir -p build && cd build - # compile the library - make +# Clone the latest code from GitHub +git clone --depth 1 https://github.com/auerswal/ssocr.git ssocr +cd ssocr/ - # Install the binaries/libraries to your local system (prefix is /usr/local) - make install +# Compile the library +make - # Cleanup - make clean -) +# Install the binaries/libraries to your local system (prefix is /usr/local) +make install \ No newline at end of file diff --git a/virtualization/Docker/setup_docker_prereqs b/virtualization/Docker/setup_docker_prereqs index e3a2dd4acf5ec..91bb988876583 100755 --- a/virtualization/Docker/setup_docker_prereqs +++ b/virtualization/Docker/setup_docker_prereqs @@ -30,8 +30,8 @@ PACKAGES=( # Required debian packages for building dependencies PACKAGES_DEV=( - cmake git - # libcec + cmake + git swig ) @@ -73,4 +73,4 @@ apt-get -y --purge autoremove # Cleanup apt-get clean -rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* build/ +rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/src/app/build/