From d7b70982d92a2b61ce232d137e44f576d1f8a561 Mon Sep 17 00:00:00 2001 From: William Yang Date: Sun, 30 Jan 2022 12:09:23 +0100 Subject: [PATCH] build(buildx): add support to run without docker --- scripts/buildx.sh | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/scripts/buildx.sh b/scripts/buildx.sh index fa8cfdce2..20b1a3a99 100755 --- a/scripts/buildx.sh +++ b/scripts/buildx.sh @@ -118,12 +118,25 @@ else MAKE_TARGET="${PROFILE}-${PKGTYPE}" fi -docker info -docker run --rm --privileged tonistiigi/binfmt:latest --install "${ARCH}" -docker run -i --rm \ - -v "$(pwd)":/emqx \ - --workdir /emqx \ - --platform="linux/$ARCH" \ - -e EMQX_NAME="$PROFILE" \ - "$BUILDER" \ - bash -euc "make ${MAKE_TARGET} && .ci/build_packages/tests.sh $PKG_NAME $PKGTYPE $ARCH" +CMD_RUN="export EMQX_NAME=\"$PROFILE\"; make ${MAKE_TARGET} && .ci/build_packages/tests.sh $PKG_NAME $PKGTYPE $ARCH" + +if docker info; then + docker run --rm --privileged tonistiigi/binfmt:latest --install "${ARCH}" + docker run -i --rm \ + -v "$(pwd)":/emqx \ + --workdir /emqx \ + --platform="linux/$ARCH" \ + "$BUILDER" \ + bash -euc "$CMD_RUN" +elif [[ $(uname -m) = "x86_64" && "$ARCH" = "amd64" ]]; then + eval "$CMD_RUN" +elif [[ $(uname -m) = "aarch64" && "$ARCH" = "arm64" ]]; then + eval "$CMD_RUN" +elif [[ $(uname -m) = "arm64" && "$ARCH" = "arm64" ]]; then + eval "$CMD_RUN" +elif [[ $(uname -m) = "armv7l" && "$ARCH" = "arm64" ]]; then + eval "$CMD_RUN" +else + echo "Error: Docker not available on unsupported platform" + exit 1; +fi