This commit is contained in:
2026-02-12 17:44:22 +01:00
parent e8c41d1f64
commit 25bf0f8202
7 changed files with 5 additions and 40 deletions

View File

@@ -31,6 +31,4 @@ Konfigurierbar über `.env`:
Backups landen in `./backups/`. Manuelles Backup auslösen: Backups landen in `./backups/`. Manuelles Backup auslösen:
``` ```
docker compose exec backup /usr/local/bin/backup.sh docker compose exec backup /usr/local/bin/backup.sh
``` ```
Das alte `backup.sh` auf dem Host funktioniert weiterhin für manuelle Backups.

View File

@@ -1,33 +0,0 @@
#!/bin/bash
# stop on error
set -e
DATE=$(date +"%Y-%m-%d")
BACKUP_NAME="${DATE}.tar.gz"
# dir of this script that will also work when called from elsewhere
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DIR" || exit 1
# load .env variables
if [ -f "$DIR/.env" ]; then
export $(grep -v '^#' "$DIR/.env" | xargs)
fi
# --- PREPARE ---
mkdir -p "${DIR}/backups"
echo "Creating DB dump..."
docker compose exec db mariadb-dump --no-tablespaces -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" > "db_dump_${DATE}.sql"
echo "Creating tar.gz archive..."
tar -czf "${DIR}/backups/${BACKUP_NAME}" --exclude='db' --exclude='.git' --exclude='static' --exclude='backups' --exclude='db_import' "." "db_dump_${DATE}.sql"
echo "Cleaning up temp SQL dump..."
rm "db_dump_${DATE}.sql"
echo "Cleaning up local backups older than 7 days..."
find "${DIR}/backups" -name "*.tar.gz" -type f -mtime +7 -delete
echo "✅ Backup complete: ${DIR}/backups/${BACKUP_NAME}"

View File

@@ -43,8 +43,8 @@ services:
condition: service_healthy condition: service_healthy
volumes: volumes:
- ./wp:/var/www/html - ./wp:/var/www/html
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini - ./config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
- ./opcache.ini:/usr/local/etc/php/conf.d/opcache.ini - ./config/opcache.ini:/usr/local/etc/php/conf.d/opcache.ini
- ./static:/export - ./static:/export
ports: ports:
- ${WP_PORT:-8080}:80 - ${WP_PORT:-8080}:80
@@ -79,7 +79,7 @@ services:
backup: backup:
build: build:
context: . context: .
dockerfile: backup.Dockerfile dockerfile: config/backup.Dockerfile
restart: unless-stopped restart: unless-stopped
depends_on: depends_on:
db: db:
@@ -92,7 +92,7 @@ services:
echo "Backup container ready. Schedule: ${BACKUP_SCHEDULE:-0 2 * * *}" echo "Backup container ready. Schedule: ${BACKUP_SCHEDULE:-0 2 * * *}"
crond -f -l 2 crond -f -l 2
volumes: volumes:
- ./backup-container.sh:/usr/local/bin/backup.sh:ro - ./scripts/backup.sh:/usr/local/bin/backup.sh:ro
- ./wp:/source/wp:ro - ./wp:/source/wp:ro
- ./backups:/backups - ./backups:/backups
environment: environment: