User Tools

Site Tools


public:home_assistant-docker-beter-division

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
public:home_assistant-docker-beter-division [2026/10/30 13:10] – created lukaspublic:home_assistant-docker-beter-division [2026/10/31 08:16] (current) – [Setup Home Assistant Core dependencies] lukas
Line 1: Line 1:
 +<code>
 # ========================================== # ==========================================
 # STAGE 1: Vývojové prostředí, kde vše zkompilujeme # STAGE 1: Vývojové prostředí, kde vše zkompilujeme
Line 28: Line 29:
 # ZDE JE TA ZMĚNA: Sem můžete kdykoliv přidat autoconf, cmake nebo ccache # ZDE JE TA ZMĚNA: Sem můžete kdykoliv přidat autoconf, cmake nebo ccache
 # a Python se už ZNOVU KOMPILOVAT NEBUDE. # a Python se už ZNOVU KOMPILOVAT NEBUDE.
-# ========================================================================= +# ====================================================================== 
-# 3b. DODATEČNÉ KOMPILAČNÍ NÁSTROJE PRO PYTHON BALÍČKY (Např. NumPy, DTLSSocket...)+# 3b. DODATEČNÉ KOMPILAČNÍ NÁSTROJE PRO PYTHON BALÍČKY (Např. NumPy, DTLSSocket, PyAV...) 
 +# Přidány ffmpeg-dev a pkgconfig pro úspěšný build balíčku 'av'
 RUN apk add --no-cache \ RUN apk add --no-cache \
     cmake rust cargo samurai ccache autoconf automake \     cmake rust cargo samurai ccache autoconf automake \
-    jpeg-dev openjpeg-dev tiff-dev freetype-dev lcms2-dev libwebp-dev+    jpeg-dev openjpeg-dev tiff-dev freetype-dev lcms2-dev libwebp-dev \ 
 +    ffmpeg-dev pkgconfig
  
 # 4. Zkopírování textových souborů závislostí # 4. Zkopírování textových souborů závislostí
Line 38: Line 41:
 COPY requirements.txt ./ COPY requirements.txt ./
 COPY homeassistant/*.txt ./homeassistant/ COPY homeassistant/*.txt ./homeassistant/
 +</code>
 +<code>
 +# 3b. DODATEČNÉ KOMPILAČNÍ NÁSTROJE A SYSTÉMOVÉ PYAV
 +# Přidán py3-av, který obsahuje nativně zkompilované PyAV pro vaši verzi FFmpeg
 +RUN apk add --no-cache \
 +    cmake rust cargo samurai ccache autoconf automake \
 +    jpeg-dev openjpeg-dev tiff-dev freetype-dev lcms2-dev libwebp-dev \
 +    ffmpeg-dev pkgconfig py3-av
 +
 +# 4. Zkopírování textových souborů závislostí
 +WORKDIR /tmp
 +COPY requirements.txt ./
 +COPY homeassistant/*.txt ./homeassistant/
 +
 +# =========================================================================
 +# NOVÝ KROK: Odstranění av z requirements, aby se uv nepokoušel o jeho kompilaci
 +# =========================================================================
 +RUN sed -i '/^av==/d' requirements.txt homeassistant/*.txt 2>/dev/null || true
 +
 +# 5. Spuštění kompilace do specifické složky
 +RUN --mount=type=cache,target=/root/.cache/uv \
 +    echo -e "[properties]\nlongdouble_format = 'IEEE_DOUBLE_LE'" > /tmp/meson-native.ini && \
 +    uv pip install \
 +      --config-settings=setup-args="--native-file=/tmp/meson-native.ini" \
 +      --config-settings=compile-args="-j$(nproc)" \
 +      --index-strategy unsafe-best-match \
 +      --target /compiled-packages \
 +      -r requirements.txt && \
 +    rm /tmp/meson-native.ini
 +
 +# ... (zde ponechte vaše LABEL a ENV definice) ...
 +
 +## Setup Home Assistant Core dependencies
 +COPY --parents requirements.txt homeassistant/package_constraints.txt homeassistant/
 +RUN \
 +    go2rtc --version \
 +    && pip3 install --no-cache-dir "uv==$(awk -F'==' '/^uv==/{print $2}' homeassistant/requirements.txt)" \
 +    && sed -i '/^av==/d' homeassistant/requirements.txt 2>/dev/null || true \
 +    && UV_CONCURRENT_BUILDS=1 uv pip install \
 +        --index-strategy unsafe-best-match \
 +        -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 \
 +    && sed -i '/^av==/d' homeassistant/requirements_all.txt 2>/dev/null || true \
 +    && UV_CONCURRENT_BUILDS=1 uv pip install \
 +        --index-strategy unsafe-best-match \
 +        -r homeassistant/requirements_all.txt
 +
 +## Setup Home Assistant Core
 +COPY --parents LICENSE* README* homeassistant/ pyproject.toml homeassistant/
 +# Na konec linkujeme systémové PyAV z Alpine do naší složky compiled-packages
 +RUN \
 +    uv pip install -e ./homeassistant \
 +    && cp -r /usr/lib/python3.*/site-packages/av* /compiled-packages/ 2>/dev/null || true \
 +    && python3 -m compileall homeassistant/homeassistant
 +
 +WORKDIR /config
 +</code>
 +
 +<code>
 +## Setup Home Assistant Core dependencies
 +COPY --parents requirements.txt homeassistant/package_constraints.txt homeassistant/
 +RUN \
 +    go2rtc --version \
 +    && pip3 install --no-cache-dir "uv==$(awk -F'==' '/^uv==/{print $2}' homeassistant/requirements.txt)" \
 +    && export CFLAGS="-DAVERROR_HTTP_TOO_MANY_REQUESTS=-1112362804 -DAV_FRAME_DATA_LCEVC=2" \
 +    && export UV_CONCURRENT_BUILDS=1 \
 +    && uv pip install \
 +        --index-strategy unsafe-best-match \
 +        -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 \
 +    && export CFLAGS="-DAVERROR_HTTP_TOO_MANY_REQUESTS=-1112362804 -DAV_FRAME_DATA_LCEVC=2" \
 +    && export UV_CONCURRENT_BUILDS=1 \
 +    && uv pip install \
 +        --index-strategy unsafe-best-match \
 +        -r homeassistant/requirements_all.txt
  
 +</code>
public/home_assistant-docker-beter-division.1793365832.txt.gz · Last modified: by lukas