Netzwerkfreigabe per CIFS-Volume als empfohlenen Weg dokumentiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dfuhrmann3 2026-07-30 16:32:55 +02:00
parent 8e44e64930
commit 35139ab2b1
2 changed files with 45 additions and 16 deletions

View File

@ -31,18 +31,36 @@ cd E-Rechnung
### 2. Austauschordner einbinden (nur für den Stapelbetrieb)
Der Stapelbetrieb liest Rechnungen aus einem Ordner und schreibt die fertigen E-Rechnungen zurück. Dafür muss die Netzwerkfreigabe dem Container zugänglich gemacht werden – ein Windows-Pfad wie `\\FS01\Daten\Technik\AI` lässt sich **nicht** in der Oberfläche eintragen, sondern wird in `docker-compose.yml` gemountet:
Der Stapelbetrieb liest Rechnungen aus einem Ordner und schreibt die fertigen E-Rechnungen zurück. Die Netzwerkfreigabe wird dafür in `docker-compose.yml` eingetragen – der Container arbeitet dann **direkt** auf ihr, es wird nichts kopiert oder synchronisiert.
Der Windows-Pfad wird dabei in Docker-Schreibweise angegeben: aus `\\FS01\Daten\Technik\AI` wird `//FS01/Daten/Technik/AI`.
```yaml
volumes:
- /mnt/fs01/Daten/Technik/AI:/data
datev_austausch:
driver: local
driver_opts:
type: cifs
device: "//FS01/Daten/Technik/AI"
o: "username=DIENSTKONTO,password=GEHEIM,domain=SCITECH,uid=1000,gid=1000,vers=3.0"
```
Wichtig: Binden Sie den **übergeordneten** Ordner ein, nicht einen einzelnen Unterordner. Alle Unterordner darunter sind dann in der Oberfläche frei wählbar, ohne dass diese Datei erneut angefasst werden muss.
und beim Service:
Alternativ kann Docker die Freigabe selbst per CIFS einhängen – der entsprechende Block steht auskommentiert am Ende von `docker-compose.yml`. Das benötigte Konto braucht Lese- **und** Schreibrechte.
```yaml
volumes:
- datev_austausch:/data
```
Wird kein Ordner eingebunden, funktioniert die Einzelrechnung uneingeschränkt; der Stapelbetrieb weist dann auf den fehlenden Mount hin.
Beides steht auskommentiert in der Datei und muss nur aktiviert und um die Zugangsdaten ergänzt werden. Das Konto braucht Lese- **und** Schreibrechte.
Wichtig: Binden Sie den **übergeordneten** Ordner ein, nicht einen einzelnen Unterordner. `Test1`, `Test2` und jeder künftige Unterordner sind dann in der Oberfläche frei wählbar, ohne dass diese Datei erneut angefasst werden muss.
Ist die Freigabe auf dem Docker-Host bereits eingehängt, genügt stattdessen ein einfacher Bind-Mount ohne Zugangsdaten (`- /mnt/fs01/Daten/Technik/AI:/data`).
Ein Eintippen des Pfads in der Oberfläche ist nicht möglich: Die Anwendung läuft auf dem Server, der Browser auf Ihrem PC – ein dort gewählter Pfad wäre für den Server bedeutungslos, und Browser geben Web-Anwendungen aus Sicherheitsgründen keine Dateipfade.
Wird nichts eingebunden, funktioniert die Einzelrechnung uneingeschränkt; der Stapelbetrieb weist dann auf den fehlenden Mount hin.
### 3. Container bauen und starten

View File

@ -10,25 +10,36 @@ services:
# frei waehlbar - fuer neue Ordner muss diese Datei NICHT angefasst werden.
- BATCH_ROOT_DIR=/data
volumes:
# Netzwerkfreigabe fuer den Stapelbetrieb einbinden. Ein UNC-Pfad (\\FS01\Daten\...) laesst
# sich im Container nicht direkt verwenden - er muss hier gemountet werden.
# Die Netzwerkfreigabe \\FS01\Daten\Technik\AI wird unten als Volume 'datev_austausch'
# definiert und hier auf /data gelegt. Der Container arbeitet damit DIREKT auf der
# Freigabe - es wird nichts kopiert oder synchronisiert.
#
# Variante A (empfohlen): Freigabe ist auf dem Docker-Host bereits eingehaengt,
# dann nur den Host-Pfad eintragen:
# Zum Aktivieren: die naechste Zeile einkommentieren, './batch_data:/data' entfernen und
# unten im Block 'volumes:' Benutzername und Passwort eintragen.
# - datev_austausch:/data
#
# Alternative, falls die Freigabe auf dem Docker-Host bereits eingehaengt ist (dann
# braucht es keine Zugangsdaten hier):
# - /mnt/fs01/Daten/Technik/AI:/data
#
# Variante B: Docker haengt die Freigabe selbst per CIFS ein - dazu unten den
# auskommentierten Block 'volumes:' am Dateiende aktivieren und hier verwenden:
# - datev_austausch:/data
# Vorbelegung ohne Freigabe: lokaler Ordner, damit der Container startet. Der
# Stapelbetrieb findet darin nichts und weist darauf hin; die Einzelrechnung
# funktioniert uneingeschraenkt.
- ./batch_data:/data
restart: unless-stopped
# Variante B fuer den Mount: Docker bindet die SMB-Freigabe selbst ein. Benoetigt ein Konto
# mit Lese- UND Schreibrechten auf der Freigabe.
# Netzwerkfreigabe als Volume. 'device' ist der Windows-Netzwerkpfad in Docker-Schreibweise:
# aus \\FS01\Daten\Technik\AI wird //FS01/Daten/Technik/AI.
#
# Es wird der UEBERGEORDNETE Ordner eingebunden, nicht ein einzelner Unterordner - dadurch
# sind Test1, Test2 und jeder kuenftige Unterordner im UI waehlbar, ohne diese Datei erneut
# anzufassen.
#
# Das angegebene Konto braucht Lese- UND Schreibrechte auf der Freigabe.
# volumes:
# datev_austausch:
# driver: local
# driver_opts:
# type: cifs
# o: "username=DIENSTKONTO,password=GEHEIM,uid=1000,gid=1000,vers=3.0"
# device: "//FS01/Daten/Technik/AI"
# device: "//FS01/Daten/Technik/AI"
# o: "username=DIENSTKONTO,password=GEHEIM,domain=SCITECH,uid=1000,gid=1000,vers=3.0"