diff --git a/script/hassfest/docker.py b/script/hassfest/docker.py index 6e39a5c350b..bce77e1ece0 100644 --- a/script/hassfest/docker.py +++ b/script/hassfest/docker.py @@ -69,7 +69,7 @@ WORKDIR /config _HASSFEST_TEMPLATE = r"""# Automatically generated by hassfest. # # To update, run python3 -m script.hassfest -p docker -FROM python:alpine3.20 +FROM python:alpine ENV \ UV_SYSTEM_PYTHON=true \ @@ -79,20 +79,17 @@ SHELL ["/bin/sh", "-o", "pipefail", "-c"] ENTRYPOINT ["/usr/src/homeassistant/script/hassfest/docker/entrypoint.sh"] WORKDIR "/github/workspace" -# Install uv -COPY --from=ghcr.io/astral-sh/uv:{uv} /uv /bin/uv - COPY . /usr/src/homeassistant -RUN \ +# Uv is only needed during build +RUN --mount=from=ghcr.io/astral-sh/uv:{uv},source=/uv,target=/bin/uv \ # Required for PyTurboJPEG apk add --no-cache libturbojpeg \ - && cd /usr/src/homeassistant \ && uv pip install \ --no-build \ --no-cache \ - -c homeassistant/package_constraints.txt \ - -r requirements.txt \ + -c /usr/src/homeassistant/homeassistant/package_constraints.txt \ + -r /usr/src/homeassistant/requirements.txt \ stdlib-list==0.10.0 pipdeptree=={pipdeptree} tqdm=={tqdm} ruff=={ruff} \ {required_components_packages} diff --git a/script/hassfest/docker/Dockerfile b/script/hassfest/docker/Dockerfile index 4fc60c0c621..0d99b04c44c 100644 --- a/script/hassfest/docker/Dockerfile +++ b/script/hassfest/docker/Dockerfile @@ -1,7 +1,7 @@ # Automatically generated by hassfest. # # To update, run python3 -m script.hassfest -p docker -FROM python:alpine3.20 +FROM python:alpine ENV \ UV_SYSTEM_PYTHON=true \ @@ -11,20 +11,17 @@ SHELL ["/bin/sh", "-o", "pipefail", "-c"] ENTRYPOINT ["/usr/src/homeassistant/script/hassfest/docker/entrypoint.sh"] WORKDIR "/github/workspace" -# Install uv -COPY --from=ghcr.io/astral-sh/uv:0.2.27 /uv /bin/uv - COPY . /usr/src/homeassistant -RUN \ +# Uv is only needed during build +RUN --mount=from=ghcr.io/astral-sh/uv:0.2.27,source=/uv,target=/bin/uv \ # Required for PyTurboJPEG apk add --no-cache libturbojpeg \ - && cd /usr/src/homeassistant \ && uv pip install \ --no-build \ --no-cache \ - -c homeassistant/package_constraints.txt \ - -r requirements.txt \ + -c /usr/src/homeassistant/homeassistant/package_constraints.txt \ + -r /usr/src/homeassistant/requirements.txt \ stdlib-list==0.10.0 pipdeptree==2.23.1 tqdm==4.66.4 ruff==0.6.2 \ PyTurboJPEG==1.7.5 ha-ffmpeg==3.2.0 hassil==1.7.4 home-assistant-intents==2024.8.29 mutagen==1.47.0 diff --git a/script/hassfest/docker/Dockerfile.dockerignore b/script/hassfest/docker/Dockerfile.dockerignore index 75ed4f0e5d3..c109421fce1 100644 --- a/script/hassfest/docker/Dockerfile.dockerignore +++ b/script/hassfest/docker/Dockerfile.dockerignore @@ -6,3 +6,6 @@ !script/ script/hassfest/docker/ !script/hassfest/docker/entrypoint.sh + +# Temporary files +**/__pycache__ \ No newline at end of file