public:home_assistant-docker-cache
This is an old revision of the document!
# ==========================================
# 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
public/home_assistant-docker-cache.1792995143.txt.gz · Last modified: by lukas
