diff --git a/Makefile b/Makefile index a3ced82ce..21b0bb049 100644 --- a/Makefile +++ b/Makefile @@ -163,7 +163,7 @@ $(IMAGE_TYPE): results/$(BASENAME).$(IMAGE_TYPE) squashfs: results/$(BASENAME).squashfs results/$(BASENAME).$(IMAGE_TYPE) results/$(BASENAME).squashfs: $(IMAGE_RECIPE_SRC) results/$(BASENAME).deb - ./build/image-recipe/run-local-build.sh "results/$(BASENAME).deb" + ARCH=$(ARCH) ./build/image-recipe/run-local-build.sh "results/$(BASENAME).deb" # For creating os images. DO NOT USE install: $(STARTOS_TARGETS) diff --git a/build/image-recipe/run-local-build.sh b/build/image-recipe/run-local-build.sh index 9b812092f..2f01dd564 100755 --- a/build/image-recipe/run-local-build.sh +++ b/build/image-recipe/run-local-build.sh @@ -14,13 +14,21 @@ fi dockerfile_hash=$(sha256sum ${BASEDIR}/build/image-recipe/Dockerfile | head -c 7) -docker_img_name="startos_build:${SUITE}-${dockerfile_hash}" +docker_img_name="start9/build-iso:${SUITE}-${dockerfile_hash}" -if [ -z "$(docker images -q "${docker_img_name}")" ]; then - docker build --build-arg=SUITE=${SUITE} -t "${docker_img_name}" ./build/image-recipe +platform=linux/${ARCH} +case $ARCH in + x86_64) + platform=linux/amd64;; + aarch64) + platform=linux/arm64;; +esac + +if ! docker run --rm --platform=$platform "${docker_img_name}" true 2> /dev/null; then + docker buildx build --load --platform=$platform --build-arg=SUITE=${SUITE} -t "${docker_img_name}" ./build/image-recipe fi -docker run $USE_TTY --rm --privileged -v "$(pwd)/build/image-recipe:/root/image-recipe" -v "$(pwd)/results:/root/results" \ +docker run $USE_TTY --rm --platform=$platform --privileged -v "$(pwd)/build/image-recipe:/root/image-recipe" -v "$(pwd)/results:/root/results" \ -e IB_SUITE="$SUITE" \ -e IB_UID="$UID" \ -e IB_INCLUDE \