Improve development workflow in docker (#5079)
* Allow bower install of frontend components as root. Needed for frontend development in docker since everything runs as root in the docker image. * Improve development workflow in docker * Use LANG=C.UTF-8 in tox. Fixes installation of libraries with UTF-8 in it's readme. * Install mysqlclient psycopg2 uvloop after requirements_all.txt again, but with a --no-cache-dir this time. Allows bootstrap_frontend to be executed in a different path like the other scripts.
This commit is contained in:
committed by
Paulus Schoutsen
parent
b2371c6614
commit
c864ea60c9
56
virtualization/Docker/Dockerfile.dev
Normal file
56
virtualization/Docker/Dockerfile.dev
Normal file
@@ -0,0 +1,56 @@
|
||||
# Dockerfile for development
|
||||
# Based on the production Dockerfile, but with development additions.
|
||||
# Keep this file as close as possible to the production Dockerfile, so the environments match.
|
||||
|
||||
FROM python:3.5
|
||||
MAINTAINER Paulus Schoutsen <Paulus@PaulusSchoutsen.nl>
|
||||
|
||||
VOLUME /config
|
||||
|
||||
RUN mkdir -p /usr/src/app
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
RUN pip3 install --no-cache-dir colorlog cython
|
||||
|
||||
# For the nmap tracker, bluetooth tracker, Z-Wave, tellstick
|
||||
RUN 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 nmap net-tools cython3 libudev-dev sudo libglib2.0-dev bluetooth libbluetooth-dev \
|
||||
libtelldus-core2 && \
|
||||
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
COPY script/build_python_openzwave script/build_python_openzwave
|
||||
RUN script/build_python_openzwave && \
|
||||
mkdir -p /usr/local/share/python-openzwave && \
|
||||
ln -sf /usr/src/app/build/python-openzwave/openzwave/config /usr/local/share/python-openzwave/config
|
||||
|
||||
COPY requirements_all.txt requirements_all.txt
|
||||
RUN pip3 install --no-cache-dir -r requirements_all.txt && \
|
||||
pip3 install --no-cache-dir mysqlclient psycopg2 uvloop
|
||||
|
||||
# BEGIN: Development additions
|
||||
|
||||
# Install nodejs
|
||||
RUN curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - && \
|
||||
apt-get install -y nodejs
|
||||
|
||||
# Install tox
|
||||
RUN pip3 install --no-cache-dir tox
|
||||
|
||||
# Copy over everything required to run tox
|
||||
COPY requirements_test.txt .
|
||||
COPY setup.cfg .
|
||||
COPY setup.py .
|
||||
COPY tox.ini .
|
||||
COPY homeassistant/const.py homeassistant/const.py
|
||||
|
||||
# Get all dependencies
|
||||
RUN tox -e py35 --notest
|
||||
|
||||
# END: Development additions
|
||||
|
||||
# Copy source
|
||||
COPY . .
|
||||
|
||||
CMD [ "python", "-m", "homeassistant", "--config", "/config" ]
|
||||
Reference in New Issue
Block a user