archy/image-recipe/build-backend.sh

46 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
# Build Archipelago backend for Alpine Linux (x86_64-musl)
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
echo "🦀 Building Archipelago Backend for Alpine Linux"
echo ""
# Create build directory
BUILD_DIR="$SCRIPT_DIR/build/backend"
mkdir -p "$BUILD_DIR"
# Use Docker with Rust Alpine image to build
echo "🐳 Building in Alpine Docker container..."
docker run --rm \
-v "$PROJECT_ROOT:/workspace" \
-v "$BUILD_DIR:/output" \
-w /workspace/core \
rust:alpine \
sh -c '
echo "📦 Installing build dependencies..."
apk add --no-cache musl-dev openssl-dev openssl-libs-static pkgconfig gcc
echo "🔨 Building Archipelago backend (native Alpine build)..."
cd archipelago && cargo build --release
echo "📋 Copying binary to output..."
cp ../target/release/archipelago /output/
echo "✅ Build complete!"
ls -lh /output/archipelago
' || {
echo "❌ Build failed"
exit 1
}
echo ""
echo "✅ Backend built successfully!"
echo " Binary: $BUILD_DIR/archipelago"
echo " Size: $(du -h "$BUILD_DIR/archipelago" | cut -f1)"
echo ""