# ========================================== # STAGE 1: Vývojové prostředí, kde vše zkompilujeme # ========================================== FROM ghcr.io/home-assistant/armv7-homeassistant-base:latest AS builder # 1. Instalace závislostí včetně kompilátorů a Rustu RUN apk add --no-cache \ cmake build-base libffi-dev openssl-dev bzip2-dev zlib-dev \ readline-dev sqlite-dev xz-dev wget musl-dev rust cargo \ jpeg-dev openjpeg-dev tiff-dev freetype-dev lcms2-dev libwebp-dev # 2. Stažení z PŘÍMÉHO odkazu a kompilace Pythonu 3.14 RUN wget https://www.python.org/ftp/python/3.14.9/Python-3.14.9.tar.xz && \ tar -xf Python-3.14.9.tar.xz && \ cd Python-3.14.9 && \ ./configure --enable-optimizations --with-ensurepip=install && \ make -j$(nproc) && \ make altinstall && \ cd .. && rm -rf Python-3.14.9* # 3. Přesměrování výchozích příkazů na nový Python 3.14 a instalace uv RUN ln -sf /usr/local/bin/python3.14 /usr/local/bin/python3 && \ ln -sf /usr/local/bin/pip3.14 /usr/local/bin/pip3 && \ pip3 install --no-cache-dir uv # 4. Zkopírování textových souborů závislostí WORKDIR /tmp COPY requirements.txt ./ COPY homeassistant/*.txt ./homeassistant/ # 5. Spuštění kompilace do specifické složky (nyní již pod Pythonem 3.14) RUN uv pip install \ --index-strategy unsafe-best-match \ --target /compiled-packages \ -r requirements.txt LABEL \ io.hass.type="core" \ org.opencontainers.image.authors="The Home Assistant Authors" \ org.opencontainers.image.description="Open-source home automation platform running on Python 3" \ org.opencontainers.image.documentation="https://www.home-assistant.io/docs/" \ org.opencontainers.image.licenses="Apache-2.0" \ org.opencontainers.image.title="Home Assistant" \ org.opencontainers.image.url="https://www.home-assistant.io/" # Synchronize with homeassistant/core.py:async_stop ENV \ S6_SERVICES_GRACETIME=240000 \ UV_SYSTEM_PYTHON=true \ UV_NO_CACHE=true WORKDIR /usr/src # Home Assistant S6-Overlay COPY rootfs / # Add go2rtc binary COPY --from=ghcr.io/alexxit/go2rtc:1.9.14@sha256:675c318b23c06fd862a61d262240c9a63436b4050d177ffc68a32710d9e05bae /usr/local/bin/go2rtc /bin/go2rtc ## Setup Home Assistant Core dependencies COPY --parents requirements.txt homeassistant/package_constraints.txt homeassistant/ RUN \ # Verify go2rtc can be executed go2rtc --version \ # Install uv at the version pinned in the requirements file && pip3 install --no-cache-dir "uv==$(awk -F'==' '/^uv==/{print $2}' homeassistant/requirements.txt)" \ && uv pip install \ --no-build \ -r homeassistant/requirements.txt COPY requirements_all.txt home_assistant_frontend-* home_assistant_intents-* homeassistant/ RUN \ if ls homeassistant/home_assistant_*.whl 1> /dev/null 2>&1; then \ uv pip install homeassistant/home_assistant_*.whl; \ fi \ && uv pip install \ --no-build \ -r homeassistant/requirements_all.txt ## Setup Home Assistant Core COPY --parents LICENSE* README* homeassistant/ pyproject.toml homeassistant/ RUN \ uv pip install \ -e ./homeassistant \ && python3 -m compileall \ homeassistant/homeassistant WORKDIR /config