2.5 KiB
2.5 KiB
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):
mkdir -p /mnt/user/Scripts/python-runner
Pak přes Windows zkopíruj oba soubory do \\tower\Scripts\python-runner\.
Jednorázové sestavení image
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
docker compose up -d
Container poběží na pozadí pořád (restartuje se i po rebootu tower).
Spuštění skriptu
docker exec -it python-runner python /scripts/parse_emails_v1.0.py
S parametry (pokračování po přerušení):
docker exec -it python-runner python /scripts/parse_emails_v1.0.py --skip-existing
Test na 50 emailech:
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)
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)
# 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:
docker exec -it python-runner python /scripts/nazev_skriptu.py
Pokud skript potřebuje nový pip balíček:
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
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:
MSGS_DIR = Path("/mnt/JNJEMAILS")