From b04b314a9b4b3fc3dc7ee1347b7dc6c1c52f6909 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Wed, 1 Dec 2021 12:20:00 +0000
Subject: [PATCH] Extend Docker build caching opportunities (#60661)

---
 Dockerfile     | 15 ++++++++++++---
 Dockerfile.dev |  9 +++++----
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index c802ba9b273..a4d5ce3045d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,12 +7,21 @@ ENV \
 
 WORKDIR /usr/src
 
-## Setup Home Assistant
+## Setup Home Assistant Core dependencies
+COPY requirements.txt homeassistant/
+COPY homeassistant/package_constraints.txt homeassistant/homeassistant/
+RUN \
+    pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
+    -r homeassistant/requirements.txt
+COPY requirements_all.txt homeassistant/
+RUN \
+    pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
+    -r homeassistant/requirements_all.txt
+
+## Setup Home Assistant Core
 COPY . homeassistant/
 RUN \
     pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-    -r homeassistant/requirements_all.txt \
-    && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
     -e ./homeassistant \
     && python3 -m compileall homeassistant/homeassistant
 
diff --git a/Dockerfile.dev b/Dockerfile.dev
index 5ebaa644ce5..727358dae9e 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -30,11 +30,12 @@ RUN git clone --depth 1 https://github.com/home-assistant/hass-release \
 WORKDIR /workspaces
 
 # Install Python dependencies from requirements
-COPY requirements.txt requirements_test.txt requirements_test_pre_commit.txt ./
+COPY requirements.txt ./
 COPY homeassistant/package_constraints.txt homeassistant/package_constraints.txt
-RUN pip3 install -r requirements.txt \
-   && pip3 install -r requirements_test.txt \
-   && rm -rf requirements.txt requirements_test.txt requirements_test_pre_commit.txt homeassistant/
+RUN pip3 install -r requirements.txt
+COPY requirements_test.txt requirements_test_pre_commit.txt ./
+RUN pip3 install -r requirements_test.txt
+RUN rm -rf requirements.txt requirements_test.txt requirements_test_pre_commit.txt homeassistant/
 
 # Set the default shell to bash instead of sh
 ENV SHELL /bin/bash
-- 
GitLab