docker-entrypoint.sh 759 B

12345678910111213141516171819202122232425262728293031
  1. #!/bin/sh
  2. set -e
  3. # Extract host from DATABASE_URL for pg_isready
  4. # DATABASE_URL format: postgres://user:pass@host:port/db?params
  5. DB_HOST=$(echo "$DATABASE_URL" | sed -n 's/.*@\([^:]*\):.*/\1/p')
  6. if [ -z "$DB_HOST" ]; then
  7. DB_HOST="postgres"
  8. fi
  9. # Wait for database to be ready
  10. echo "Waiting for database at $DB_HOST..."
  11. for i in $(seq 1 30); do
  12. if pg_isready -h "$DB_HOST" -U photoplaces -q 2>/dev/null; then
  13. echo "Database is ready"
  14. break
  15. fi
  16. if [ $i -eq 30 ]; then
  17. echo "Timed out waiting for database"
  18. exit 1
  19. fi
  20. sleep 2
  21. done
  22. # Run migrations
  23. echo "Running migrations..."
  24. migrate -path /migrations -database "$DATABASE_URL" up
  25. # Start application
  26. echo "Starting application..."
  27. exec /photoplaces-api