Merge pull request 'Beleg-Speicherort auf Bind-Mount umgestellt zur Vereinheitlichung.' (#31) from fds2610-bot/Steuerkram:main into main
Reviewed-on: https://codeberg.org/fds2610/Steuerkram/pulls/31 Achtung! Update so durchführen: docker compose down git pull ./scripts/migrate-uploads-to-bindmount.sh # VOR docker compose up! docker compose up -d docker volume rm steuerkram_uploads # danach aufräumen
This commit is contained in:
commit
3372de8d26
3 changed files with 78 additions and 3 deletions
15
Changes.md
15
Changes.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
62
scripts/migrate-uploads-to-bindmount.sh
Executable file
62
scripts/migrate-uploads-to-bindmount.sh
Executable 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"
|
||||
Loading…
Add table
Reference in a new issue