Поддержка сборки arm64/x86 в docker

This commit is contained in:
justuser-31 2025-04-22 12:55:10 +03:00
parent 92bd15d5a1
commit 11acacb94a

69
multi_build.sh Executable file
View File

@ -0,0 +1,69 @@
pause () {
read -p "Press enter to continue"
}
clear
echo "------- Multi build -------"
echo "This is build for:"
echo " - x86 + musl*"
echo " - arm + musl*"
echo ""
echo "* - alternative C library"
echo "---------------------------"
pause
clear
echo "------ Requirements ------"
echo "Please install this packages (Debian):"
echo ""
echo "docker qemu binfmt-support qemu-user-static"
echo "---------------------------"
pause
clear
echo "--------- Build -----------"
mkdir build
echo "[BUILD] BUILD FOR X86 ON ALPINE"
echo "[BUILD] START CONTAINER"
if [ "$(docker ps -a -q -f name=run_tracker_x86)" ]; then
docker start run_tracker_x86
else
docker run -d --name run_tracker_x86 alpine:latest tail -f /dev/null
fi
echo "[BUILD] INSTALL PACKAGES"
docker exec run_tracker_x86 apk add --no-cache git gcc musl-dev
echo "[BUILD] CLONE REPO && UPDATE"
docker exec run_tracker_x86 sh -c "git clone https://gitea.del.pw/justuser-31/run_tracker.git"
docker exec run_tracker_x86 sh -c "cd run_tracker && git pull"
echo "[BUILD] BUILD"
docker exec run_tracker_x86 sh -c "cd run_tracker && ./build.sh"
echo "[BUILD] COPY RESULT"
docker cp run_tracker_x86:/run_tracker/rtracker build/rtracker_x86
echo "[BUILD] STOP CONTAINER"
docker stop run_tracker_x86
echo "[BUILD] BUILD FOR ARM64 ON ALPINE"
echo "[BUILD] START CONTAINER"
if [ "$(docker ps -a -q -f name=run_tracker_arm64)" ]; then
docker start run_tracker_arm64
else
docker run --platform=linux/arm64/v8 -d --name run_tracker_arm64 arm64v8/alpine:latest tail -f /dev/null
fi
echo "[BUILD] INSTALL PACKAGES"
docker exec run_tracker_arm64 apk add --no-cache git gcc musl-dev
echo "[BUILD] CLONE REPO && UPDATE"
docker exec run_tracker_arm64 sh -c "git clone https://gitea.del.pw/justuser-31/run_tracker.git"
docker exec run_tracker_arm64 sh -c "cd run_tracker && git pull"
echo "[BUILD] BUILD"
docker exec run_tracker_arm64 sh -c "cd run_tracker && ./build.sh"
echo "[BUILD] COPY RESULT"
docker cp run_tracker_arm64:/run_tracker/rtracker build/rtracker_arm64
echo "[BUILD] STOP CONTAINER"
docker stop run_tracker_arm64
echo "---------------------------"
echo "Build ended, result should be in build path"
echo "---------------------------"
pause