mirror of
https://github.com/esphome/esphome.git
synced 2026-08-17 19:13:18 +08:00
CI - GitHub Scripts / Test auto-label-pr scripts (push) Waiting to run
CI / Create common environment (push) Canceled after 0s
CI / Determine which jobs to run (push) Canceled after 0s
CI / Run script/ci-custom (push) Canceled after 0s
CI / Check pylint (push) Canceled after 0s
CI / Check lint and formatting (push) Canceled after 0s
CI / Run pytest (macOS-latest, 3.12) (push) Canceled after 0s
CI / Run pytest (macOS-latest, 3.14) (push) Canceled after 0s
CI / Run pytest (ubuntu-latest, 3.12) (push) Canceled after 0s
CI / Run pytest (ubuntu-latest, 3.13) (push) Canceled after 0s
CI / Run pytest (ubuntu-latest, 3.14) (push) Canceled after 0s
CI / Run pytest (windows-latest, 3.12) (push) Canceled after 0s
CI / Run pytest (windows-latest, 3.14) (push) Canceled after 0s
CI / Report no coverage to Codecov (push) Canceled after 0s
CI / Run integration tests () (push) Canceled after 0s
CI / Check import esphome.__main__ time (push) Canceled after 0s
CI / Run CodSpeed benchmarks (push) Canceled after 0s
CI / Run C++ unit tests (push) Canceled after 0s
CI / Run script/clang-tidy for LibreTiny (push) Canceled after 0s
CI / Run script/clang-tidy for ESP8266 (push) Canceled after 0s
CI / Run script/clang-tidy for RP2 (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 Arduino (push) Canceled after 0s
CI / Run script/clang-tidy for ZEPHYR (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 IDF (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 IDF 1/3 (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 IDF 2/3 (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 IDF 3/3 (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 C6 (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 P4 (push) Canceled after 0s
CI / Run script/clang-tidy for ESP32 S3 (push) Canceled after 0s
CI / Test components batch () (push) Canceled after 0s
CI / Test esp32 components with PlatformIO (push) Canceled after 0s
CI / Test downstream esphome/device-builder (push) Canceled after 0s
CI / Build target branch for memory impact (push) Canceled after 0s
CI / Build PR branch for memory impact (push) Canceled after 0s
CI / Comment memory impact (push) Canceled after 0s
CI / CI Status (push) Canceled after 0s
90 lines
2.9 KiB
Docker
90 lines
2.9 KiB
Docker
ARG BUILD_VERSION=dev
|
|
ARG BUILD_BASE_VERSION=2026.06.1
|
|
ARG BUILD_TYPE=docker
|
|
|
|
FROM ghcr.io/esphome/docker-base:debian-${BUILD_BASE_VERSION} AS base-source-docker
|
|
FROM ghcr.io/esphome/docker-base:debian-ha-addon-${BUILD_BASE_VERSION} AS base-source-ha-addon
|
|
|
|
ARG BUILD_TYPE
|
|
FROM base-source-${BUILD_TYPE} AS base
|
|
|
|
RUN git config --system --add safe.directory "*" \
|
|
&& git config --system advice.detachedHead false
|
|
|
|
ENV PIP_DISABLE_PIP_VERSION_CHECK=1
|
|
|
|
RUN pip install --no-cache-dir -U pip uv==0.10.1
|
|
|
|
COPY requirements.txt /
|
|
|
|
RUN \
|
|
uv pip install --no-cache-dir \
|
|
-r /requirements.txt
|
|
|
|
# Install the ESPHome Device Builder dashboard.
|
|
RUN uv pip install --no-cache-dir esphome-device-builder==1.11.0
|
|
|
|
RUN \
|
|
platformio settings set enable_telemetry No \
|
|
&& platformio settings set check_platformio_interval 1000000 \
|
|
&& mkdir -p /piolibs
|
|
|
|
COPY script/platformio_install_deps.py platformio.ini /
|
|
RUN /platformio_install_deps.py /platformio.ini --libraries
|
|
|
|
ARG BUILD_VERSION
|
|
|
|
LABEL \
|
|
org.opencontainers.image.authors="The ESPHome Authors" \
|
|
org.opencontainers.image.title="ESPHome" \
|
|
org.opencontainers.image.description="ESPHome is a system to configure your microcontrollers by simple yet powerful configuration files and control them remotely through Home Automation systems" \
|
|
org.opencontainers.image.url="https://esphome.io/" \
|
|
org.opencontainers.image.documentation="https://esphome.io/" \
|
|
org.opencontainers.image.source="https://github.com/esphome/esphome" \
|
|
org.opencontainers.image.licenses="ESPHome" \
|
|
org.opencontainers.image.version=${BUILD_VERSION}
|
|
|
|
|
|
# ======================= docker-type image =======================
|
|
FROM base AS base-docker
|
|
|
|
# Expose the dashboard to Docker
|
|
EXPOSE 6052
|
|
|
|
# Run healthcheck (heartbeat)
|
|
HEALTHCHECK --interval=30s --timeout=30s \
|
|
CMD curl --fail http://localhost:6052/version -A "HealthCheck" || exit 1
|
|
|
|
COPY docker/docker_entrypoint.sh /entrypoint.sh
|
|
|
|
# The directory the user should mount their configuration files to
|
|
VOLUME /config
|
|
WORKDIR /config
|
|
# Set entrypoint to esphome (via a script) so that the user doesn't have to type 'esphome'
|
|
# in every docker command twice
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
# When no arguments given, start the dashboard in the workdir
|
|
CMD ["dashboard", "/config"]
|
|
|
|
|
|
# ======================= ha-addon-type image =======================
|
|
FROM base AS base-ha-addon
|
|
|
|
# Copy root filesystem
|
|
COPY docker/ha-addon-rootfs/ /
|
|
|
|
ARG BUILD_VERSION
|
|
LABEL \
|
|
io.hass.name="ESPHome" \
|
|
io.hass.description="ESPHome is a system to configure your microcontrollers by simple yet powerful configuration files and control them remotely through Home Automation systems" \
|
|
io.hass.type="addon" \
|
|
io.hass.version="${BUILD_VERSION}"
|
|
# io.hass.arch is inherited from addon-debian-base
|
|
|
|
ARG BUILD_TYPE
|
|
FROM base-${BUILD_TYPE} AS final
|
|
|
|
# Copy esphome and install
|
|
COPY . /esphome
|
|
RUN uv pip install --no-cache-dir -e /esphome
|