fix: Inbox/Uploads unter gemeinsamem Bind-Mount (EXDEV bei Path.replace)
Beim E2E-Smoke-Test schlug der Import mit 'Invalid cross-device link' fehl: rename() funktioniert nicht ueber zwei getrennte Bind-Mounts. Inbox und Uploads liegen jetzt unter einem einzigen /data-Mount. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -31,8 +31,15 @@ GRAFANA_CONTAINER_PORT='3000'
|
||||
BIND_DIR="$HOME/.local/share/$POD_NAME"
|
||||
POSTGRES_DATA_DIR="$BIND_DIR/postgres-data"
|
||||
GRAFANA_DATA_DIR="$BIND_DIR/grafana-data"
|
||||
INBOX_DIR="$BIND_DIR/inbox"
|
||||
UPLOADS_DIR="$BIND_DIR/uploads"
|
||||
# inbox and uploads must live under one shared bind mount: process_pdf()
|
||||
# moves a file from inbox to uploads via Path.replace() (os.replace/rename),
|
||||
# which fails with EXDEV ("Invalid cross-device link") across two separate
|
||||
# bind mounts even when both point at the same underlying host filesystem
|
||||
# (Linux permits a filesystem to be mounted at multiple points, but rename()
|
||||
# does not work across different mount points - see `man 2 rename`).
|
||||
DATA_DIR="$BIND_DIR/data"
|
||||
INBOX_DIR="$DATA_DIR/inbox"
|
||||
UPLOADS_DIR="$DATA_DIR/uploads"
|
||||
USER_SYSTEMD_DIR="$HOME/.config/systemd/user"
|
||||
|
||||
FINANCE_DIR="$HOME/bin/finance"
|
||||
@@ -142,8 +149,7 @@ podman run -d --name "$API_CTR_NAME" --pod "$POD_NAME" \
|
||||
-e FB_GUI_PASSWORD_HASH \
|
||||
-e FB_INBOX_DIR=/data/inbox \
|
||||
-e FB_UPLOADS_DIR=/data/uploads \
|
||||
-v "$INBOX_DIR:/data/inbox:Z" \
|
||||
-v "$UPLOADS_DIR:/data/uploads:Z" \
|
||||
-v "$DATA_DIR:/data:Z" \
|
||||
"$API_IMAGE"
|
||||
echo "Container '$API_CTR_NAME' started (rc=$?)"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user