# Python Runner na Unraid — návod ## Příprava Zkopíruj `Dockerfile` a `docker-compose.yml` na tower do složky, např.: ``` /mnt/user/Scripts/python-runner/ ``` Přes Unraid terminál (Tools → Terminal): ```bash mkdir -p /mnt/user/Scripts/python-runner ``` Pak přes Windows zkopíruj oba soubory do `\\tower\Scripts\python-runner\`. --- ## Jednorázové sestavení image ```bash cd /mnt/user/Scripts/python-runner docker compose build ``` Trvá 1–2 minuty, stáhne Python 3.12 a nainstaluje balíčky. --- ## Spuštění containeru ```bash docker compose up -d ``` Container poběží na pozadí pořád (restartuje se i po rebootu tower). --- ## Spuštění skriptu ```bash docker exec -it python-runner python /scripts/parse_emails_v1.0.py ``` S parametry (pokračování po přerušení): ```bash docker exec -it python-runner python /scripts/parse_emails_v1.0.py --skip-existing ``` Test na 50 emailech: ```bash docker exec -it python-runner python /scripts/parse_emails_v1.0.py --limit 50 --no-indexes ``` --- ## Spuštění na pozadí (doporučeno pro 48h import) ```bash docker exec -d python-runner python /scripts/parse_emails_v1.0.py --skip-existing ``` Přepínač `-d` pustí skript na pozadí — terminál můžeš zavřít. ### Sledování průběhu (log) ```bash # Spusť skript s logováním do souboru: docker exec -d python-runner bash -c \ "python /scripts/parse_emails_v1.0.py --skip-existing > /scripts/parse_emails.log 2>&1" # Sleduj průběh živě: docker exec -it python-runner tail -f /scripts/parse_emails.log ``` --- ## Jakýkoliv jiný skript Stačí skript hodit do `\\tower\Scripts\` a spustit: ```bash docker exec -it python-runner python /scripts/nazev_skriptu.py ``` Pokud skript potřebuje nový pip balíček: ```bash docker exec -it python-runner pip install nazev-balicku ``` (Nainstaluje se do běžícího containeru. Po `docker compose down/up` zmizí — pro trvalé přidej do Dockerfile a znovu `docker compose build`.) --- ## Zastavení / restart ```bash docker compose stop # zastaví container docker compose start # znovu spustí docker compose down # zastaví a odstraní container (image zůstane) ``` --- ## Cesty uvnitř containeru | Na tower | Uvnitř containeru | |---|---| | `/mnt/user/Scripts` | `/scripts` | | `/mnt/user/JNJEMAILS` | `/mnt/JNJEMAILS` | Skript má v kódu `MSGS_DIR = Path(r"\\tower\JNJEMAILS")` — **před spuštěním v Dockeru změň** na: ```python MSGS_DIR = Path("/mnt/JNJEMAILS") ```