From b51f0069fba332c7d1be8ef63749a3010722a7ca Mon Sep 17 00:00:00 2001 From: Chakru <161002324+chakru-r@users.noreply.github.com> Date: Thu, 17 Jul 2025 02:01:45 +0530 Subject: [PATCH] build(actions): optimize docker layer caching (#14114) --- docker/datahub-actions/Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docker/datahub-actions/Dockerfile b/docker/datahub-actions/Dockerfile index c0d4097c7f..9e77339328 100644 --- a/docker/datahub-actions/Dockerfile +++ b/docker/datahub-actions/Dockerfile @@ -139,6 +139,18 @@ RUN chmod a+x /start_datahub_actions.sh && \ mkdir -p /tmp/datahub/logs/actions/system && \ chown -R datahub:datahub /etc/datahub /tmp/datahub +# Install a cacheble layer that installs external dependencies and does not get invalidated due to changes in ingestion or actions code +# Copy just enough to enable pip compile to work. Other code changes wont invalidate this layer. +COPY --chown=datahub:datahub ./metadata-ingestion/setup.py /metadata-ingestion/ +COPY --chown=datahub:datahub ./metadata-ingestion/src/datahub/_version.py /metadata-ingestion/src/datahub/ +COPY --chown=datahub:datahub ./datahub-actions/setup.py /datahub-actions/ +COPY --chown=datahub:datahub ./datahub-actions/src/datahub_actions/_version.py /datahub-actions/src/datahub_actions/ +COPY --chown=datahub:datahub ./datahub-actions/README.md /datahub-actions/ + +USER datahub +RUN echo "-e /metadata-ingestion/ \n -e /datahub-actions/[all]" | uv pip compile /dev/stdin | grep -v "\-e" | uv pip install -r /dev/stdin +USER 0 + COPY --chown=datahub:datahub ./metadata-ingestion /metadata-ingestion COPY --chown=datahub:datahub ./datahub-actions /datahub-actions # Add other default configurations into this!