Update wrapper/docker-entrypoint.sh
This commit is contained in:
parent
ff218c0a98
commit
39ffee3db4
@ -1,21 +1,20 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# --- ENV defaults (can be overridden by compose/Portainer) ---
|
# --- ENV defaults (overridden by stack/Portainer) ---
|
||||||
REPO_URL="${REPO_URL:-https://git.example.com/owner/shaiwatcher.git}"
|
REPO_URL="${REPO_URL:-https://git.example.com/owner/shaiwatcher.git}"
|
||||||
REPO_BRANCH="${REPO_BRANCH:-main}"
|
REPO_BRANCH="${REPO_BRANCH:-main}"
|
||||||
SHAI_CONFIG="${SHAI_CONFIG:-/config/settings.conf}"
|
SHAI_CONFIG="${SHAI_CONFIG:-/config/settings.conf}"
|
||||||
SHAI_DATA="${SHAI_DATA:-/data/data.json}" # we also honor SHAI_DATA_FILE in the bot
|
SHAI_DATA="${SHAI_DATA:-/data/data.json}"
|
||||||
|
|
||||||
echo "[Wrapper] Repo: $REPO_URL @ $REPO_BRANCH"
|
echo "[Wrapper] Repo: $REPO_URL @ $REPO_BRANCH"
|
||||||
echo "[Wrapper] SHAI_CONFIG: $SHAI_CONFIG"
|
echo "[Wrapper] SHAI_CONFIG: $SHAI_CONFIG"
|
||||||
echo "[Wrapper] SHAI_DATA: $SHAI_DATA"
|
echo "[Wrapper] SHAI_DATA: $SHAI_DATA"
|
||||||
|
|
||||||
# --- Ensure volumes/dirs exist ---
|
|
||||||
mkdir -p "$(dirname "$SHAI_CONFIG")" /data /app/runtime
|
mkdir -p "$(dirname "$SHAI_CONFIG")" /data /app/runtime
|
||||||
touch "$SHAI_CONFIG"
|
touch "$SHAI_CONFIG"
|
||||||
|
|
||||||
# --- Fetch bot code fresh on every boot (or cache in /app/runtime) ---
|
# --- fetch repo to /app/runtime/repo ---
|
||||||
if [ ! -d /app/runtime/repo/.git ]; then
|
if [ ! -d /app/runtime/repo/.git ]; then
|
||||||
echo "[Wrapper] Cloning repo..."
|
echo "[Wrapper] Cloning repo..."
|
||||||
git clone --depth=1 -b "$REPO_BRANCH" "$REPO_URL" /app/runtime/repo
|
git clone --depth=1 -b "$REPO_BRANCH" "$REPO_URL" /app/runtime/repo
|
||||||
@ -27,31 +26,31 @@ fi
|
|||||||
|
|
||||||
cd /app/runtime/repo
|
cd /app/runtime/repo
|
||||||
|
|
||||||
# --- Python deps if needed ---
|
# --- Python deps ---
|
||||||
if [ -f requirements.txt ]; then
|
if [ -f requirements.txt ]; then
|
||||||
echo "[Wrapper] Installing requirements..."
|
echo "[Wrapper] Installing requirements..."
|
||||||
pip install --no-cache-dir -r requirements.txt
|
pip install --no-cache-dir -r requirements.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Keep Playwright browsers in a persistent volume
|
# --- Playwright browsers (idempotent) ---
|
||||||
export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-/cache/pw-browsers}"
|
export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-/cache/pw-browsers}"
|
||||||
mkdir -p "$PLAYWRIGHT_BROWSERS_PATH"
|
mkdir -p "$PLAYWRIGHT_BROWSERS_PATH"
|
||||||
|
|
||||||
# If Playwright is installed, make sure Chromium + deps are installed too
|
if python - <<'PY' >/dev/null 2>&1; then
|
||||||
if python -c "import playwright" >/dev/null 2>&1; then
|
import importlib, sys
|
||||||
if [ ! -d "$PLAYWRIGHT_BROWSERS_PATH" ] || [ -z "$(ls -A "$PLAYWRIGHT_BROWSERS_PATH" 2>/dev/null)" ]; then
|
sys.exit(0 if importlib.util.find_spec("playwright") else 1)
|
||||||
echo "[Wrapper] Installing Playwright Chromium (with deps) to $PLAYWRIGHT_BROWSERS_PATH ..."
|
PY
|
||||||
# Prefer the combined install; fall back to plain install if --with-deps isn't available
|
then
|
||||||
python -m playwright install --with-deps chromium || \
|
# only install if chromium binary not found under the cache path
|
||||||
(python -m playwright install-deps chromium && python -m playwright install chromium)
|
if ! find "$PLAYWRIGHT_BROWSERS_PATH" -type f -path "*/chrome-linux/chrome" -print -quit | grep -q . ; then
|
||||||
else
|
echo "[Wrapper] Preparing Playwright runtime in $PLAYWRIGHT_BROWSERS_PATH ..."
|
||||||
echo "[Wrapper] Playwright browser cache present at $PLAYWRIGHT_BROWSERS_PATH"
|
# if libs were not baked at build time, this helps (it is no-op if already satisfied)
|
||||||
|
python -m playwright install-deps chromium || true
|
||||||
|
python -m playwright install chromium
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --- Export env for child (don’t quote, avoid stray quotes) ---
|
|
||||||
export SHAI_CONFIG SHAI_DATA
|
export SHAI_CONFIG SHAI_DATA
|
||||||
|
|
||||||
# --- Last sanity echo to help debugging ---
|
|
||||||
echo "[Wrapper] Launching bot..."
|
echo "[Wrapper] Launching bot..."
|
||||||
python -u bot.py
|
python -u bot.py
|
||||||
|
Loading…
Reference in New Issue
Block a user