ProxmoxBackupClientPBSClien.../docker/build.sh
zaphod-black fbe81d28ae Add Docker-based cross-platform solution (v1.2.0)
Major addition: Full Docker implementation for Windows, macOS, and Linux support

New Features:
- Docker container with PBS client in Debian environment
- Platform-specific docker-compose files (linux/windows/macos)
- Daemon mode with internal cron scheduler
- One-shot backup mode for manual execution
- Optional REST API server for remote management
- Health monitoring and status endpoints
- Automatic encryption key generation and management

Docker Structure:
- docker/Dockerfile - Container build definition
- docker/scripts/ - Entrypoint, backup, healthcheck, and API scripts
- docker/build.sh - Build script for Docker image
- docker/deploy.sh - Interactive deployment script
- docker/docker-compose-*.yml - Platform-specific configurations

Documentation:
- docker/README-DOCKER.md - Complete Docker documentation
- docker/QUICKSTART-DOCKER.md - Quick start guide
- docker/DOCKER-SOLUTION-SUMMARY.md - Architecture overview
- BACKUP-TYPES-GUIDE.md - File vs block device backup guide

Updated:
- README.md - Added cross-platform support section and platform matrix
- CHANGELOG.md - Documented all Docker features

This enables PBSClientTool to backup Windows and Mac systems via Docker,
while maintaining native Linux performance for full disk images.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 22:36:41 -06:00

59 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
# Build script for PBS Client Docker image
set -e
VERSION=${1:-latest}
IMAGE_NAME="pbsclient"
echo "=================================="
echo "Building PBS Client Docker Image"
echo "=================================="
echo "Version: $VERSION"
echo "Image: $IMAGE_NAME:$VERSION"
echo
# Check if scripts directory exists
if [ ! -d "scripts" ]; then
echo "ERROR: scripts/ directory not found"
echo "Make sure you're in the correct directory"
exit 1
fi
# Build the image
echo "Building image..."
docker build -t "$IMAGE_NAME:$VERSION" .
if [ $? -eq 0 ]; then
echo
echo "=================================="
echo "Build successful!"
echo "=================================="
echo
echo "Image: $IMAGE_NAME:$VERSION"
echo
echo "Quick test:"
echo " docker run --rm $IMAGE_NAME:$VERSION test"
echo
echo "Deploy with:"
echo " docker-compose -f docker-compose-linux.yml up -d"
echo " docker-compose -f docker-compose-windows.yml up -d"
echo " docker-compose -f docker-compose-macos.yml up -d"
echo
else
echo
echo "=================================="
echo "Build failed!"
echo "=================================="
exit 1
fi
# Optionally tag as latest
if [ "$VERSION" != "latest" ]; then
echo "Tagging as latest..."
docker tag "$IMAGE_NAME:$VERSION" "$IMAGE_NAME:latest"
fi
# Show image size
echo "Image size:"
docker images "$IMAGE_NAME:$VERSION" --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"