48 lines
1.3 KiB
Bash
Executable File
48 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# build amd64 and arm64 versions of dropshell, to:
|
|
# build/dropshell.amd64
|
|
# build/dropshell.arm64
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
OUTPUT_DIR="$SCRIPT_DIR/output"
|
|
DOCKERFILE="$SCRIPT_DIR/Dockerfile.multiarch"
|
|
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
# Ensure buildx is available
|
|
if ! docker buildx version &>/dev/null; then
|
|
echo "Docker Buildx is required. Please install Docker Buildx." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Build for x86_64
|
|
DOCKER_BUILDKIT=1 docker buildx build --platform linux/amd64 \
|
|
-f "$DOCKERFILE" \
|
|
--output type=local,dest="$OUTPUT_DIR/amd64_tmp" \
|
|
--cache-from type=local,src=/tmp/dropshell-cache \
|
|
--cache-to type=local,dest=/tmp/dropshell-cache,mode=max \
|
|
"$SCRIPT_DIR"
|
|
|
|
mv "$OUTPUT_DIR/amd64_tmp/dropshell" "$OUTPUT_DIR/dropshell.amd64"
|
|
rm -rf "$OUTPUT_DIR/amd64_tmp"
|
|
|
|
echo "Built output/dropshell.amd64"
|
|
|
|
# Build for aarch64
|
|
DOCKER_BUILDKIT=1 docker buildx build --platform linux/arm64 \
|
|
-f "$DOCKERFILE" \
|
|
--output type=local,dest="$OUTPUT_DIR/arm64_tmp" \
|
|
--cache-from type=local,src=/tmp/dropshell-cache \
|
|
--cache-to type=local,dest=/tmp/dropshell-cache,mode=max \
|
|
"$SCRIPT_DIR"
|
|
|
|
mv "$OUTPUT_DIR/arm64_tmp/dropshell" "$OUTPUT_DIR/dropshell.arm64"
|
|
rm -rf "$OUTPUT_DIR/arm64_tmp"
|
|
|
|
echo "Built output/dropshell.arm64"
|
|
|
|
echo "Builds complete:"
|
|
ls -lh "$OUTPUT_DIR"/dropshell.* |