ok... ok... I'll add it to git...
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
version: '3.8'
|
||||
|
||||
# Maintenance Runner - Scheduled Tasks & Scripts
|
||||
# Purpose: Centralized container for running maintenance tasks (backups, cleanup, health checks, etc.)
|
||||
# Ports: None (background service)
|
||||
# GPU: No
|
||||
# Storage: Read access to Docker data, write to backup location
|
||||
|
||||
services:
|
||||
maintenance:
|
||||
image: alpine:latest
|
||||
container_name: maintenance
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
# Docker configs to backup (read-only)
|
||||
- /home/jpmschweitzer/docker-data:/data/docker-data:ro
|
||||
|
||||
# Host-based service configs to backup (read-only)
|
||||
- /home/jpmschweitzer/.config/code-server:/data/code-server-config:ro
|
||||
|
||||
# Backup destination (read-write)
|
||||
- /mnt/media/backups:/backups
|
||||
|
||||
# Maintenance scripts
|
||||
- /home/jpmschweitzer/docker-data/maintenance/scripts:/scripts:ro
|
||||
|
||||
# Crontab configuration
|
||||
- /home/jpmschweitzer/docker-data/maintenance/crontab:/etc/crontabs/root:ro
|
||||
|
||||
# Logs
|
||||
- /home/jpmschweitzer/docker-data/maintenance/logs:/var/log/maintenance
|
||||
|
||||
# Docker socket for container management (read-only)
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
command: >
|
||||
sh -c "
|
||||
apk add --no-cache docker-cli &&
|
||||
crond -f -l 2
|
||||
"
|
||||
# crond flags:
|
||||
# -f: foreground (don't daemonize)
|
||||
# -l 2: log level 2 (errors and info)
|
||||
|
||||
# Usage:
|
||||
# 1. Create maintenance scripts in ~/docker-data/maintenance/scripts/
|
||||
# 2. Define schedule in ~/docker-data/maintenance/crontab
|
||||
# 3. Container will execute scripts per schedule
|
||||
#
|
||||
# Adding new maintenance tasks:
|
||||
# 1. Create new script in scripts/ directory
|
||||
# 2. Make it executable: chmod +x script-name.sh
|
||||
# 3. Add to crontab with desired schedule
|
||||
# 4. Restart container: docker restart maintenance
|
||||
#
|
||||
# View logs:
|
||||
# - Cron logs: docker logs maintenance
|
||||
# - Task logs: ~/docker-data/maintenance/logs/
|
||||
#
|
||||
# Manual task execution:
|
||||
# docker exec maintenance /scripts/backup-configs.sh
|
||||
Reference in New Issue
Block a user