Beleg-Speicherort auf Bind-Mount umgestellt zur Vereinheitlichung.

This commit is contained in:
fds2610-bot 2026-04-12 07:25:49 +02:00
parent 027bd9c46f
commit f672069e6f
3 changed files with 78 additions and 3 deletions

View file

@ -2,6 +2,21 @@
---
## 2026-04-12 – Uploads: named Volume → Bind Mount
### Geändert
- `docker-compose.yml`: Upload-Volume von named Volume (`steuerkram_uploads`) auf Bind Mount (`./uploads/`) umgestellt – konsistent mit `./data/mariadb/`
- `scripts/migrate-uploads-to-bindmount.sh`: Einmalige Migration hinzugefügt
### Update auf Produktiv-System
**Vor** `docker compose up` einmalig ausführen:
```bash
./scripts/migrate-uploads-to-bindmount.sh
```
Das Script kopiert alle Dateien aus dem named Volume in `./uploads/`, ist idempotent und gibt am Ende den Befehl zum Löschen des alten Volumes aus.
---
## 2026-04-11 – Buchungsbasierte Vorsteuer Kz 61/62 in UStVA
### Geändert

View file

@ -7,7 +7,7 @@ services:
- ./public:/var/www/html/public
- ./src:/var/www/html/src
- ./migrations:/var/www/html/migrations
- uploads:/var/www/html/public/static/uploads
- ./uploads:/var/www/html/public/static/uploads
- ./data:/var/www/html/data
- ./tests:/var/www/html/tests
- ./scripts:/var/www/html/scripts
@ -43,5 +43,3 @@ services:
retries: 10
restart: unless-stopped
volumes:
uploads:

View file

@ -0,0 +1,62 @@
#!/bin/bash
# Einmalige Migration: Uploads vom named Docker Volume in ./uploads/ (Bind Mount)
# Vor dem ersten "docker compose up" mit dem neuen docker-compose.yml ausführen.
#
# Das Script ist idempotent: bereits vorhandene Dateien in ./uploads/ werden
# nicht überschrieben. Es ist sicher, es mehrfach auszuführen.
#
# Usage: ./scripts/migrate-uploads-to-bindmount.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
TARGET_DIR="$PROJECT_DIR/uploads"
VOLUME_NAME="steuerkram_uploads"
echo "=== Uploads-Migration: named Volume → Bind Mount ==="
echo "Zielverzeichnis: $TARGET_DIR"
echo ""
# Prüfen ob das named Volume existiert
if ! docker volume ls --format '{{.Name}}' | grep -qx "$VOLUME_NAME"; then
echo "Named Volume '$VOLUME_NAME' nicht gefunden – nichts zu migrieren."
echo "Zielverzeichnis wird angelegt (falls nicht vorhanden)."
mkdir -p "$TARGET_DIR"
echo "Fertig."
exit 0
fi
# Anzahl Dateien im Volume ermitteln
FILE_COUNT=$(docker run --rm \
-v "$VOLUME_NAME:/src" \
alpine \
find /src -type f | wc -l)
echo "Dateien im named Volume: $FILE_COUNT"
if [ "$FILE_COUNT" -eq 0 ]; then
echo "Volume ist leer – nichts zu kopieren."
mkdir -p "$TARGET_DIR"
echo "Fertig."
exit 0
fi
mkdir -p "$TARGET_DIR"
echo "Kopiere Dateien ins Bind-Mount-Verzeichnis..."
docker run --rm \
-v "$VOLUME_NAME:/src" \
-v "$TARGET_DIR:/dst" \
alpine \
sh -c 'cp -r /src/. /dst/'
COPIED=$(find "$TARGET_DIR" -type f | wc -l)
echo ""
echo "Migration abgeschlossen: $COPIED Dateien in $TARGET_DIR"
echo ""
echo "Nächste Schritte:"
echo " docker compose up -d"
echo ""
echo "Das named Volume '$VOLUME_NAME' kann danach gelöscht werden:"
echo " docker volume rm $VOLUME_NAME"