mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Set U2NET_HOME=/opt/models/rembg so rembg models pre-downloaded at build time as root are found at runtime by the non-root ashim user. Without this every fresh container re-downloaded the 973 MB BiRefNet models on first background-removal request. Apply the same fix to PaddleOCR: download to /opt/models/paddlex and symlink into both /root/.paddlex and /app/.paddlex so PaddleX finds models regardless of which HOME gosu resolves at runtime. Fall back to per-request spawning in bridge.ts when the persistent dispatcher crashes mid-request (e.g. OOM loading a large ONNX model), so the operation succeeds instead of surfacing "Python dispatcher exited unexpectedly" to the user. Improve entrypoint.sh permission warning to mention Windows bind mounts as the likely cause.
20 lines
770 B
Bash
Executable File
20 lines
770 B
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# Apply auth defaults at runtime so they are never baked into image layers.
|
|
# Users can override any of these via -e flags at docker run time.
|
|
export AUTH_ENABLED="${AUTH_ENABLED:-true}"
|
|
export DEFAULT_USERNAME="${DEFAULT_USERNAME:-admin}"
|
|
export DEFAULT_PASSWORD="${DEFAULT_PASSWORD:-admin}"
|
|
|
|
# Fix ownership of mounted volumes so the non-root ashim user can write.
|
|
# This runs as root, fixes permissions, then drops to ashim via gosu.
|
|
if [ "$(id -u)" = "0" ]; then
|
|
chown -R ashim:ashim /data /tmp/workspace 2>&1 || \
|
|
echo "WARNING: Could not fix volume permissions. Use named volumes (not Windows bind mounts) to avoid this. See docs for details." >&2
|
|
exec gosu ashim "$@"
|
|
fi
|
|
|
|
# Already running as ashim (e.g. Kubernetes runAsUser)
|
|
exec "$@"
|