dawarich/docker/web-entrypoint.sh

49 lines
1.6 KiB
Bash
Raw Normal View History

2025-01-08 07:06:50 -05:00
#!/bin/sh
unset BUNDLE_PATH
unset BUNDLE_BIN
set -e
echo "⚠️ Starting Rails environment: $RAILS_ENV ⚠️"
2025-01-08 07:06:50 -05:00
# Parse DATABASE_URL if present, otherwise use individual variables
if [ -n "$DATABASE_URL" ]; then
# Extract components from DATABASE_URL
2025-01-17 18:18:06 -05:00
DATABASE_HOST="$(echo "$DATABASE_URL" | awk -F[@/] '{print $4}')"
DATABASE_PORT="$(echo "$DATABASE_URL" | awk -F[@/:] '{print $5}')"
DATABASE_USERNAME="$(echo "$DATABASE_URL" | awk -F[:/@] '{print $4}')"
DATABASE_PASSWORD="$(echo "$DATABASE_URL" | awk -F[:/@] '{print $5}')"
DATABASE_NAME="$(echo "$DATABASE_URL" | awk -F[@/] '{print $5}')"
2025-01-08 07:06:50 -05:00
fi
# Remove pre-existing puma/passenger server.pid
2025-01-17 18:18:06 -05:00
rm -f "$APP_PATH/tmp/pids/server.pid"
2025-01-08 07:06:50 -05:00
2025-04-24 14:46:38 -04:00
echo "Attempting to create database $DATABASE_NAME if it doesn't exist..."
PGPASSWORD=$DATABASE_PASSWORD createdb -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USERNAME" "$DATABASE_NAME" 2>/dev/null || echo "Note: Database may already exist or couldn't be created now"
# Wait for the database to become available
echo "⏳ Waiting for database to be ready..."
2025-04-24 14:46:38 -04:00
until PGPASSWORD=$DATABASE_PASSWORD psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USERNAME" -d "$DATABASE_NAME" -c '\q' 2>/dev/null; do
>&2 echo "Postgres is unavailable - retrying..."
sleep 2
done
echo "✅ PostgreSQL is ready!"
2025-01-08 07:06:50 -05:00
# Run database migrations
echo "PostgreSQL is ready. Running database migrations..."
bundle exec rails db:migrate
# Run data migrations
echo "Running DATA migrations..."
bundle exec rake data:migrate
# if [ "$RAILS_ENV" != "production" ]; then
echo "Running seeds..."
bundle exec rails db:seed
# fi
2025-01-08 07:06:50 -05:00
# run passed commands
exec bundle exec "${@}"