57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| set -e
 | |
| 
 | |
| # Configuration
 | |
| PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 | |
| IMAGE_NAME="zabbix-apk-builder"
 | |
| CONTAINER_NAME="zabbix-build-$$"
 | |
| OUTPUT_DIR="$PROJECT_DIR/packages"
 | |
| 
 | |
| echo "=== Zabbix APK Builder ==="
 | |
| echo "Project directory: $PROJECT_DIR"
 | |
| echo "Output directory: $OUTPUT_DIR"
 | |
| 
 | |
| # Clean up function
 | |
| cleanup() {
 | |
|     echo "Cleaning up container..."
 | |
|     docker rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
 | |
| }
 | |
| 
 | |
| trap cleanup EXIT
 | |
| 
 | |
| # Clean and create output directory
 | |
| rm -rf "$OUTPUT_DIR"
 | |
| mkdir -p "$OUTPUT_DIR"
 | |
| 
 | |
| # Build Docker image
 | |
| echo "Building Docker image..."
 | |
| docker build -t "$IMAGE_NAME" "$PROJECT_DIR"
 | |
| 
 | |
| # Run the build in the container
 | |
| echo "Running package build in container..."
 | |
| docker run --name "$CONTAINER_NAME" "$IMAGE_NAME"
 | |
| 
 | |
| # Copy packages from container to host
 | |
| echo "Copying packages from container..."
 | |
| if docker cp "$CONTAINER_NAME:/home/builder/packages/." "$OUTPUT_DIR/"; then
 | |
|     echo "✅ Packages copied successfully"
 | |
|     
 | |
|     # Remove APKINDEX files (we only want the .apk packages)
 | |
|     echo "Removing repository index files..."
 | |
|     find "$OUTPUT_DIR" -name "APKINDEX.tar.gz" -delete 2>/dev/null || true
 | |
|     
 | |
|     # Fix permissions on copied files
 | |
|     echo "Fixing file permissions..."
 | |
|     find "$OUTPUT_DIR" -name "*.apk" -exec chmod 644 {} \; 2>/dev/null || true
 | |
|     
 | |
|     echo "Build completed successfully!"
 | |
|     echo "Packages are in $OUTPUT_DIR:"
 | |
|     find "$OUTPUT_DIR" -name "*.apk" -exec ls -la {} \;
 | |
| else
 | |
|     echo "❌ Failed to copy packages"
 | |
|     echo "Checking what's in the container..."
 | |
|     docker exec "$CONTAINER_NAME" find /home/builder -name "*.apk" -exec ls -la {} \; 2>/dev/null || true
 | |
|     docker exec "$CONTAINER_NAME" ls -la /home/builder/packages/ 2>/dev/null || true
 | |
|     exit 1
 | |
| fi |