summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Gabaldon <igabaldon@inetol.net>2025-09-23 20:34:28 +0200
committerGitHub <noreply@github.com>2025-09-23 20:34:28 +0200
commitd2e2802514fdd153e2c5791c3ddc3901d08a7be7 (patch)
treea917af247dc0273bdba2df6ce49cc6fb67ae33ba
parenta57b29b009ca65b2ed49e09fb000fc1a6b58153e (diff)
[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
-rw-r--r--container/dist.dockerfile9
-rw-r--r--utils/lib_sxng_container.sh4
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
(