all good
This commit is contained in:
@@ -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.
|
|
||||||
33
backup.sh
33
backup.sh
@@ -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}"
|
|
||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user