ProxmoxBackupClientPBSClien.../docker/Dockerfile
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

63 lines
1.8 KiB
Docker

# Proxmox Backup Client - Docker Container
# Cross-platform PBS client for Windows, Mac, and Linux
FROM debian:bookworm-slim
# Metadata
LABEL maintainer="PBSClientTool"
LABEL description="Cross-platform Proxmox Backup Client with scheduler"
LABEL version="1.0.0"
# Install dependencies
RUN apt-get update && \
apt-get install -y \
wget \
gnupg \
cron \
curl \
jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Add Proxmox repository and install PBS client
RUN wget -q https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg \
-O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg && \
echo "deb [arch=amd64] http://download.proxmox.com/debian/pbs-client bookworm main" \
> /etc/apt/sources.list.d/pbs-client.list && \
apt-get update && \
apt-get install -y proxmox-backup-client && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Create directories
RUN mkdir -p /config /backup-scripts /host-data /logs
# Copy scripts
COPY scripts/entrypoint.sh /usr/local/bin/
COPY scripts/backup.sh /usr/local/bin/pbs-backup
COPY scripts/healthcheck.sh /usr/local/bin/healthcheck
COPY scripts/api-server.sh /usr/local/bin/api-server
RUN chmod +x /usr/local/bin/entrypoint.sh \
/usr/local/bin/pbs-backup \
/usr/local/bin/healthcheck \
/usr/local/bin/api-server
# Expose API port (optional)
EXPOSE 8080
# Health check
HEALTHCHECK --interval=5m --timeout=10s --start-period=30s --retries=3 \
CMD /usr/local/bin/healthcheck
# Default environment variables
ENV MODE=daemon \
BACKUP_SCHEDULE="0 2 * * *" \
BACKUP_PATHS="/host-data" \
EXCLUDE_PATTERNS="/host-data/tmp /host-data/var/tmp /host-data/proc /host-data/sys /host-data/dev" \
TIMEZONE=UTC
VOLUME ["/config", "/logs", "/host-data"]
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["daemon"]