Trying to improve dockerfile cacheing

This commit is contained in:
2026-09-18 02:37:11 +00:00
parent c32db91535
commit 68ccc25652
3 changed files with 16 additions and 12 deletions
+11 -11
View File
@@ -5,7 +5,7 @@
# builds (podman builds all --platform targets concurrently).
# Declare the automatic build arguments
ARG BUILDPLATFORM
FROM --platform=$BUILDPLATFORM node:lts-trixie-slim AS base
FROM --platform=$BUILDPLATFORM docker.io/library/node:lts-trixie-slim AS base
# Install dependencies only when needed
FROM base AS deps
@@ -36,7 +36,7 @@ RUN \
else echo "Lockfile not found." && exit 1; \
fi
FROM python:3.14-slim AS runner
FROM docker.io/library/python:3.14-slim AS runner
LABEL maintainer="Amritanshu <docker@tanshu.com>"
RUN apt-get update \
@@ -69,15 +69,6 @@ WORKDIR /app/
# Ref: https://docs.astral.sh/uv/guides/integration/docker/#using-the-environment
ENV PATH="/app/.venv/bin:$PATH"
# Pass the version from the Makefile. The build context has no usable .git
# (a git-URL build is a tag-less shallow clone and git is not installed), so
# hatch-vcs cannot discover the version itself. hatch-vcs calls
# setuptools_scm without a dist name, so only the generic
# SETUPTOOLS_SCM_PRETEND_VERSION is honored - the
# SETUPTOOLS_SCM_PRETEND_VERSION_FOR_<NAME> variant is silently ignored.
ARG SETUPTOOLS_SCM_PRETEND_VERSION
ENV SETUPTOOLS_SCM_PRETEND_VERSION=$SETUPTOOLS_SCM_PRETEND_VERSION
# Install dependencies
# Ref: https://docs.astral.sh/uv/guides/integration/docker/#intermediate-layers
RUN --mount=type=cache,target=/root/.cache/uv \
@@ -87,6 +78,15 @@ RUN --mount=type=cache,target=/root/.cache/uv \
COPY /brewman ./
# Pass the version from the Makefile. The build context has no usable .git
# (git archive stream / shallow clone lacks git metadata), so
# hatch-vcs cannot discover the version itself. hatch-vcs calls
# setuptools_scm without a dist name, so only the generic
# SETUPTOOLS_SCM_PRETEND_VERSION is honored - the
# SETUPTOOLS_SCM_PRETEND_VERSION_FOR_<NAME> variant is silently ignored.
ARG SETUPTOOLS_SCM_PRETEND_VERSION
ENV SETUPTOOLS_SCM_PRETEND_VERSION=$SETUPTOOLS_SCM_PRETEND_VERSION
# hatch-vcs generates _version.py only inside uv's isolated wheel build, so
# the source tree copied here lacks it. Write it ourselves (from the same
# build arg) so importing brewman from /app works identically to the