#!/bin/bash # Wait for Postgres, migrate, then exec CMD (rails or sidekiq). set -euo pipefail export RAILS_ENV="${RAILS_ENV:-production}" echo "koopa-decidim: waiting for postgres..." i=0 until bundle exec rails runner 'ActiveRecord::Base.connection.execute("SELECT 1")' >/dev/null 2>&1; do i=$((i + 1)) if [ "$i" -ge 60 ]; then echo "koopa-decidim: postgres not ready after ${i} tries" >&2 exit 1 fi sleep 3 done echo "koopa-decidim: db:prepare" bundle exec rails db:prepare echo "koopa-decidim: exec $*" exec "$@"