116 lines
2.5 KiB
Markdown
116 lines
2.5 KiB
Markdown
# 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")
|
||
```
|