test_locally.sh: use docker buildx (or DOCKER_BUILDKIT=1) for the build
The Dockerfile uses BuildKit-only features (the # syntax=docker/dockerfile:1.7 parser directive and RUN ... <<'PY' heredocs added in dockerfile 1.3+). The legacy builder rejects the --progress flag at the CLI level and would fail later at the heredocs anyway. Detect docker buildx and use it when available (preserves --progress=plain output). Otherwise fall back to plain `docker build` with DOCKER_BUILDKIT=1 exported, which gets the BuildKit features without buildx's nicer formatting. Reproduces the failure path seen on Docker 28.2.2 without buildx installed: unknown flag: --progress ERROR docker build exited 125
This commit is contained in:
parent
acbb16c8a1
commit
f7b34793f2
1 changed files with 16 additions and 2 deletions
|
|
@ -96,8 +96,22 @@ else
|
|||
|
||||
BUILD_LOG="$LOG_DIR/build.log"
|
||||
echo " log: $BUILD_LOG"
|
||||
docker build --progress=plain -t "$TAG" "$BUILD_CTX" 2>&1 | tee "$BUILD_LOG"
|
||||
rc=${PIPESTATUS[0]}
|
||||
|
||||
# The Dockerfile uses BuildKit-only features ('# syntax=docker/dockerfile:1.7'
|
||||
# and 'RUN ... <<\'PY\'' heredocs). The legacy builder rejects --progress and
|
||||
# would fail at parse time on the heredocs anyway. Prefer buildx; fall back to
|
||||
# DOCKER_BUILDKIT=1 + plain docker build for hosts without buildx installed.
|
||||
if docker buildx version >/dev/null 2>&1; then
|
||||
echo " builder: docker buildx"
|
||||
docker buildx build --progress=plain --load -t "$TAG" "$BUILD_CTX" 2>&1 | tee "$BUILD_LOG"
|
||||
rc=${PIPESTATUS[0]}
|
||||
else
|
||||
echo " builder: DOCKER_BUILDKIT=1 docker build (legacy fallback)"
|
||||
warn "docker buildx not available -- install for cleaner build output:"
|
||||
warn " https://docs.docker.com/go/buildx/"
|
||||
DOCKER_BUILDKIT=1 docker build -t "$TAG" "$BUILD_CTX" 2>&1 | tee "$BUILD_LOG"
|
||||
rc=${PIPESTATUS[0]}
|
||||
fi
|
||||
if [[ $rc -ne 0 ]]; then
|
||||
fail "docker build exited $rc -- see $BUILD_LOG"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue