changemaker.lite/api/media-docker-entrypoint.sh

23 lines
882 B
Bash
Executable File

#!/bin/sh
set -e
# Fix permissions for mounted volumes (host dirs may be root-owned on first
# run — Docker auto-creates missing bind-mount sources as root:root).
# /media's :ro parent mount cannot be chowned, but the :rw subdirs that
# media-api writes into can — and that's all the process needs.
# /app/logs is shared with the api container via the ./api:/app dev mount;
# api's entrypoint already chowns it but media-api may start independently.
if [ "$(id -u)" = "0" ]; then
for d in /media/local/inbox /media/local/thumbnails /media/local/photos \
/media/local/documents /media/public /app/logs; do
[ -d "$d" ] && chown -R node:node "$d" 2>/dev/null || true
done
fi
# Drop to node user if running as root (production image uses su-exec).
if [ "$(id -u)" = "0" ] && command -v su-exec >/dev/null 2>&1; then
exec su-exec node "$@"
else
exec "$@"
fi