From d2e2802514fdd153e2c5791c3ddc3901d08a7be7 Mon Sep 17 00:00:00 2001 From: Ivan Gabaldon Date: Tue, 23 Sep 2025 20:34:28 +0200 Subject: [PATCH] [fix] utils: variable expansion (#5237) Docker buildx outputs the following error: variable expansion is not supported for --from, define a new stage with FROM using ARG from global scope as a workaround. Also force BuildKit extension to be installed, legacy build is no longer supported. Closes https://github.com/searxng/searxng/issues/5219 --- container/dist.dockerfile | 9 +++++---- utils/lib_sxng_container.sh | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/container/dist.dockerfile b/container/dist.dockerfile index b16f432e4..66ece521f 100644 --- a/container/dist.dockerfile +++ b/container/dist.dockerfile @@ -1,10 +1,11 @@ -FROM ghcr.io/searxng/base:searxng AS dist - ARG CONTAINER_IMAGE_ORGANIZATION="searxng" ARG CONTAINER_IMAGE_NAME="searxng" -COPY --chown=searxng:searxng --from=localhost/$CONTAINER_IMAGE_ORGANIZATION/$CONTAINER_IMAGE_NAME:builder /usr/local/searxng/.venv/ ./.venv/ -COPY --chown=searxng:searxng --from=localhost/$CONTAINER_IMAGE_ORGANIZATION/$CONTAINER_IMAGE_NAME:builder /usr/local/searxng/searx/ ./searx/ +FROM localhost/$CONTAINER_IMAGE_ORGANIZATION/$CONTAINER_IMAGE_NAME:builder AS builder +FROM ghcr.io/searxng/base:searxng AS dist + +COPY --chown=searxng:searxng --from=builder /usr/local/searxng/.venv/ ./.venv/ +COPY --chown=searxng:searxng --from=builder /usr/local/searxng/searx/ ./searx/ COPY --chown=searxng:searxng ./container/ ./ #COPY --chown=searxng:searxng ./searx/version_frozen.py ./searx/ diff --git a/utils/lib_sxng_container.sh b/utils/lib_sxng_container.sh index 27d6c5414..eee218c06 100644 --- a/utils/lib_sxng_container.sh +++ b/utils/lib_sxng_container.sh @@ -62,6 +62,10 @@ container.build() { esac info_msg "Selected platform: $platform" + if [ "$container_engine" = "docker" ] && ! docker buildx version &>/dev/null; then + die 42 "docker buildx is not installed: https://docs.docker.com/go/buildx/" + fi + pyenv.install (