dawarich/docker/sidekiq-entrypoint.sh
2025-07-15 12:48:26 +02:00

29 lines
982 B
Bash

#!/bin/sh
unset BUNDLE_PATH
unset BUNDLE_BIN
set -e
echo "⚠️ Starting Sidekiq in $RAILS_ENV environment ⚠️"
# Parse DATABASE_URL if present, otherwise use individual variables
if [ -n "$DATABASE_URL" ]; then
# Extract components from DATABASE_URL
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}')"
fi
# Wait for the database to become available
echo "⏳ Waiting for database to be ready..."
until PGPASSWORD=$DATABASE_PASSWORD psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USERNAME" -d "$DATABASE_NAME" -c '\q'; do
>&2 echo "Postgres is unavailable - retrying..."
sleep 2
done
echo "✅ PostgreSQL is ready!"
# run sidekiq
exec bundle exec sidekiq