# 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")
```
