share-lt/cmd/docker-entrypoint.sh
2026-01-25 16:05:00 +00:00

36 lines
1 KiB
Bash

#!/bin/sh
set -e
run_as_www() {
# prefer su-exec (alpine), fallback to runuser if available, otherwise run directly
if command -v su-exec >/dev/null 2>&1; then
su-exec www "$@"
elif command -v runuser >/dev/null 2>&1; then
runuser -u www -- "$@"
else
"$@"
fi
}
# Build front-end assets if Vite manifest is missing
if [ ! -f /var/www/public/build/manifest.json ]; then
echo "Building front-end assets (vite)..."
run_as_www npm ci
run_as_www npm run build
fi
# Wait for database directory to be mounted
if [ ! -f /var/www/database/database.sqlite ]; then
echo "Creating database..."
# create the sqlite file as the www user so ownership matches app files
run_as_www sh -c 'touch /var/www/database/database.sqlite'
run_as_www php artisan migrate --force
fi
# Fix storage permissions
echo "Fixing storage permissions..."
chown -R www:www /var/www/storage /var/www/bootstrap/cache
chmod -R 775 /var/www/storage /var/www/bootstrap/cache
# Execute the main command
exec "$@"