mirror of
https://github.com/esphome/esphome.git
synced 2024-11-30 02:34:12 +01:00
3d9301a0f7
* Rename * Update * Add migration * Fix * Fix dashboard * Change test * Fixes * Code cleanup * Fix import order * Update * Automate docker builds * Shellcheck
59 lines
1.8 KiB
Docker
59 lines
1.8 KiB
Docker
ARG BUILD_FROM=hassioaddons/ubuntu-base:2.2.1
|
|
# hadolint ignore=DL3006
|
|
FROM ${BUILD_FROM}
|
|
|
|
# Set shell
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
# Copy root filesystem
|
|
COPY rootfs /
|
|
|
|
RUN \
|
|
# Temporarily move nginx.conf (otherwise dpkg fails)
|
|
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bkp \
|
|
# Install add-on dependencies
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
# Python 2 for ESPHome
|
|
python \
|
|
python-pip \
|
|
python-setuptools \
|
|
# Python Pillow for display component
|
|
python-pil \
|
|
# Git for esphomelib downloads
|
|
git \
|
|
# NGINX proxy
|
|
nginx \
|
|
\
|
|
&& mv /etc/nginx/nginx.conf.bkp /etc/nginx/nginx.conf \
|
|
\
|
|
&& pip2 install --no-cache-dir --no-binary :all: https://github.com/esphome/esphome/archive/dev.zip \
|
|
\
|
|
# Change some platformio settings
|
|
&& platformio settings set enable_telemetry No \
|
|
&& platformio settings set check_libraries_interval 1000000 \
|
|
&& platformio settings set check_platformio_interval 1000000 \
|
|
&& platformio settings set check_platforms_interval 1000000 \
|
|
\
|
|
# Build an empty platformio project to force platformio to install all fw build dependencies
|
|
# The return-code will be non-zero since there's nothing to build.
|
|
&& (platformio run -d /opt/pio; echo "Done") \
|
|
\
|
|
# Cleanup
|
|
&& rm -fr \
|
|
/tmp/* \
|
|
/var/{cache,log}/* \
|
|
/var/lib/apt/lists/* \
|
|
/opt/pio/
|
|
|
|
# Build arugments
|
|
ARG BUILD_ARCH=amd64
|
|
ARG BUILD_VERSION
|
|
|
|
# Labels
|
|
LABEL \
|
|
io.hass.name="ESPHome" \
|
|
io.hass.description="Manage and program ESP8266/ESP32 microcontrollers through YAML configuration files" \
|
|
io.hass.arch="${BUILD_ARCH}" \
|
|
io.hass.type="addon" \
|
|
io.hass.version=${BUILD_VERSION}
|