Rebuild natives
This commit is contained in:
@@ -5,29 +5,44 @@ set -e
|
|||||||
# make sure we're in the correct directory - the top-level `native` directory
|
# make sure we're in the correct directory - the top-level `native` directory
|
||||||
cd "$(dirname "$0")/.." || exit 1
|
cd "$(dirname "$0")/.." || exit 1
|
||||||
|
|
||||||
|
# Use docker by default, falling back to podman. Set CONTAINER_ENGINE to pick one explicitly.
|
||||||
|
if [ -z "$CONTAINER_ENGINE" ]; then
|
||||||
|
if command -v docker > /dev/null 2>&1; then
|
||||||
|
CONTAINER_ENGINE=docker
|
||||||
|
elif command -v podman > /dev/null 2>&1; then
|
||||||
|
CONTAINER_ENGINE=podman
|
||||||
|
else
|
||||||
|
echo "Neither docker nor podman was found on PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Using container engine: $CONTAINER_ENGINE"
|
||||||
|
|
||||||
ARCHS=(x86_64 aarch64)
|
ARCHS=(x86_64 aarch64)
|
||||||
BASE_DOCKERFILE_VARIANTS=(ubuntu-focal ubuntu-jammy alpine)
|
BASE_DOCKERFILE_VARIANTS=(ubuntu-focal ubuntu-jammy alpine)
|
||||||
COMPRESSION_VARIANTS=(ubuntu-focal alpine)
|
COMPRESSION_VARIANTS=(ubuntu-focal alpine)
|
||||||
|
|
||||||
|
# Build one image per (variant, arch). Passing several --platform flags to a single tagged build
|
||||||
|
# does not produce a multi-arch tag - only the last architecture keeps the tag, and the run below
|
||||||
|
# then sees a platform mismatch, treats the image as missing and tries to pull it from a registry.
|
||||||
for variant in "${BASE_DOCKERFILE_VARIANTS[@]}"; do
|
for variant in "${BASE_DOCKERFILE_VARIANTS[@]}"; do
|
||||||
docker_platforms=""
|
|
||||||
for arch in "${ARCHS[@]}"; do
|
for arch in "${ARCHS[@]}"; do
|
||||||
docker_platforms="$docker_platforms --platform linux/${arch}"
|
echo "Building base build image for $variant on $arch..."
|
||||||
|
$CONTAINER_ENGINE build -t velocity-native-build:$variant-$arch --platform linux/${arch} \
|
||||||
|
-f build-support/$variant.Dockerfile .
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Building base build image for $variant..."
|
|
||||||
docker build -t velocity-native-build:$variant $docker_platforms -f build-support/$variant.Dockerfile .
|
|
||||||
done
|
done
|
||||||
|
|
||||||
for arch in "${ARCHS[@]}"; do
|
for arch in "${ARCHS[@]}"; do
|
||||||
for variant in "${BASE_DOCKERFILE_VARIANTS[@]}"; do
|
for variant in "${BASE_DOCKERFILE_VARIANTS[@]}"; do
|
||||||
echo "Building native crypto for $arch on $variant..."
|
echo "Building native crypto for $arch on $variant..."
|
||||||
|
|
||||||
docker run --rm -v "$(pwd)":/app --platform linux/${arch} velocity-native-build:$variant /bin/bash -c "cd /app && ./build-support/compile-linux-crypto.sh"
|
$CONTAINER_ENGINE run --rm --pull=never -v "$(pwd)":/app --platform linux/${arch} velocity-native-build:$variant-$arch /bin/bash -c "cd /app && ./build-support/compile-linux-crypto.sh"
|
||||||
done
|
done
|
||||||
|
|
||||||
for variant in "${COMPRESSION_VARIANTS[@]}"; do
|
for variant in "${COMPRESSION_VARIANTS[@]}"; do
|
||||||
echo "Building native compression for $arch on $variant..."
|
echo "Building native compression for $arch on $variant..."
|
||||||
docker run --rm -v "$(pwd)":/app --platform linux/${arch} velocity-native-build:$variant /bin/bash -c "cd /app && ./build-support/compile-linux-compress.sh"
|
$CONTAINER_ENGINE run --rm --pull=never -v "$(pwd)":/app --platform linux/${arch} velocity-native-build:$variant-$arch /bin/bash -c "cd /app && ./build-support/compile-linux-compress.sh"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user