| | #!/usr/bin/env bash |
| | set -euo pipefail |
| | cd /app |
| |
|
| | echo "=== ENTRYPOINT: printing env ===" |
| | env | grep -E 'ZD_HEADLESS|USE_VIRTUAL_DISPLAY|NO_INITIAL_FETCH|PORT' || true |
| |
|
| | |
| | if ! command -v google-chrome >/dev/null 2>&1; then |
| | echo "Downloading google-chrome-stable..." |
| | wget -q -O /tmp/chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb || { echo "Failed to download chrome"; } |
| | apt-get update && apt-get install -y --no-install-recommends /tmp/chrome.deb || true |
| | rm -f /tmp/chrome.deb |
| | fi |
| |
|
| | |
| | if command -v google-chrome >/dev/null 2>&1; then |
| | CHROME_VER="$(google-chrome --product-version 2>/dev/null || echo unknown)" |
| | echo "Google Chrome version: $CHROME_VER" |
| | else |
| | echo "google-chrome not found" |
| | fi |
| |
|
| | |
| | if command -v google-chrome >/dev/null 2>&1 && ! command -v chromedriver >/dev/null 2>&1; then |
| | MAJOR="$(echo $CHROME_VER | cut -d. -f1)" |
| | if [ -n "$MAJOR" ]; then |
| | echo "Resolving chromedriver for Chrome major version: $MAJOR" |
| | LATEST=$(curl -fsSL "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${MAJOR}" || true) |
| | if [ -n "$LATEST" ]; then |
| | echo "Downloading chromedriver v$LATEST" |
| | curl -fsSL -o /tmp/chromedriver_linux64.zip "https://chromedriver.storage.googleapis.com/${LATEST}/chromedriver_linux64.zip" |
| | unzip -o /tmp/chromedriver_linux64.zip -d /usr/local/bin |
| | chmod +x /usr/local/bin/chromedriver |
| | rm -f /tmp/chromedriver_linux64.zip |
| | echo "chromedriver installed: $(/usr/local/bin/chromedriver --version 2>/dev/null || true)" |
| | else |
| | echo "Could not find chromedriver LATEST_RELEASE for $MAJOR" |
| | fi |
| | else |
| | echo "Could not determine chrome major version" |
| | fi |
| | fi |
| |
|
| | |
| | echo "=== Versions ===" |
| | google-chrome --version || true |
| | chromedriver --version || true |
| | python3 --version |
| | pip show cloudscraper || true |
| |
|
| | |
| | echo "Starting uvicorn..." |
| | exec uvicorn server:app --host 0.0.0.0 --port "${PORT}" --loop asyncio --workers 1 |