← Vissza a főoldalra
Local Docker Lab · lokális WebShop Pro stack
WebShop Pro Local Docker Lab

Egy indítható compose stack az összes kurzushoz.

A dummy webshop, az adatplatform, az AI/RAG réteg és a monitoring ugyanabban a lokális környezetben fut. Így a kurzusok nem különálló példák: ugyanarra a projektre mutatnak vissza.

Gyors indítás

Repo gyökérből futtasd
shell
# Csak az alap service-ek (course-site, postgres, adminer):
docker compose up -d --build

# Vagy egy kurzus profil:
docker compose --profile delta up -d --build

# Vagy minden:
docker compose --profile all up -d --build

Első induláskor az image-ek letöltése miatt 5-10 perc is lehet. Ha valami piros, először nézd meg a logot: docker compose logs -f api.

Kurzus profilok — csak azt indítsd, ami kell!

A teljes lab ~7 GB RAM-ot eszik. Ha csak egy kurzust csinálsz, használd a profilokat — csak a szükséges service-ek indulnak el, a többi békén hagyva.

ProfilParancsService-ekRAM
core (alap)docker compose up -dcourse-site, webshop, postgres, adminer~400 MB
sql--profile sqlcore (csak postgres)~400 MB
python--profile pythoncore + lab-runner~1 GB
docker--profile dockercore + minio, spark, airflow, monitoring~3.5 GB
delta--profile deltacore + minio, spark, lab-runner~3 GB
spark--profile sparkcore + spark, databricks, mlflow, unity~5 GB
databricks--profile databrickscore + databricks, spark, mlflow, unity~5 GB
airflow--profile airflowcore + airflow~1.5 GB
dbt--profile dbtcore + dbt~1 GB
streaming--profile streamingcore + kafka, spark, kafka-ui~3 GB
otf--profile otfcore + minio, lab-runner, unity~2 GB
ai-eng--profile ai-engcore + chroma, streamlit, api, mlflow~2 GB
ai-de--profile ai-decore + kafka, minio, lab-runner, mlflow~3 GB
aiops--profile aiopscore + mlflow, api, monitoring~2 GB
llmops--profile llmopscore + mlflow, api, monitoring~2 GB
rag--profile ragcore + chroma, lab-runner, mlflow~2 GB
all--profile allMINDEN service~7 GB
Példa: csak az Airflow kurzushoz
profile
docker compose --profile airflow up -d --build

Tipp: több profil is kombinálható: docker compose --profile airflow --profile dbt up -d. Ha nem adsz meg profilt, csak a core service-ek indulnak (course-site, webshop, postgres, adminer).

Indítás lépésről lépésre

1Docker ellenőrzése

Nézd meg, hogy a CLI és a Compose plugin elérhető-e.

check
docker --version
docker compose version

2Stack indítása

Felépíti a saját image-eket és elindítja a teljes labot.

start
docker compose up -d --build

3Állapot nézése

Gyors kép arról, melyik service fut és hol kell logot nézni.

status
docker compose ps
docker compose logs -f api airflow dbt

4Előkészítő script

Újragenerálja a tanuló artifactokat, ha kézzel akarod futtatni.

seed
docker compose exec lab-bootstrap python /lab/runner/scripts/bootstrap_lab.py

Ha nem indul minden

TünetMit nézz meg?Javítás
Port ütközés5432, 8010, 8088, 9001, 3000, 9090Állítsd le a másik service-t, vagy módosítsd a bal oldali host portot a compose-ban.
Airflow lassan jön feldocker compose logs -f airflowElső DB migrációkor türelem; 1-2 perc normális.
dbt kilépdocker compose logs dbtA Postgresnek egészségesnek kell lennie; utána futtasd újra: docker compose up -d dbt.
Kafka topic nincsdocker compose logs kafka-initFuttasd újra: docker compose up kafka-init.
kafka-init vagy minio-init kilépettExit 0 státuszEz normális: ezek előkészítő service-ek, lefutnak, létrehozzák az erőforrásokat, majd befejeződnek.
Teljes reset kellRégi volume-ok maradtakdocker compose down --volumes --remove-orphans, majd újraindítás.

Service-ek, URL-ek és belépési adatok

Local Docker Lab: kurzus -> service

KurzusCompose service-ekElőre betöltött anyag
SQLpostgresraw.*, analytics.*, course.materials
Pythonlab-runner, lab-bootstrapJSON -> Parquet, quality report, /output/course-materials
Dockerteljes composeminden service címkézve van kurzus szerint
Delta / Open formatslab-runner, minio, unity-catalogBronze/Silver/Gold kimenetek, MinIO artifactok
Sparkspark-master, spark-workerwebshop_spark_etl.py, silver/gold Parquet kimenetek
Airflowairflow, spark-master, spark-workerwebshop_daily_etl DAG, amely Spark ETL-t is submitol
dbtdbt, postgresstaging és marts modellek, dbt docs
Streamingkafka, event-producerfolyamatos clickstream események
AI/RAGchroma, streamlit, apisupport policy és kurzusösszefoglaló dokumentumok ChromaDB-ben
MLOps/LLMOpsmlflow, api, prometheus, grafanaMLflow demo run, FastAPI /predict, Grafana dashboard

WebShop Pro felület

A http://localhost:8010/ címen elérhető dummy webshop három nézetet tartalmaz:

B

Bolt nézet

Termékkatalógus kártyákkal, kosárba tevés és vásárlás (POST /api/simulate-order), valós idejű rendelésgenerálás (automatikus, 8-15 másodpercenként).

A

Admin nézet

Rendelések táblázat, készletkezelés, bevétel és rendelésszám statisztikák.

D

Dashboard nézet

KPI metrikák (bevétel, konverzió, AOV, support ticketek), termék teljesítmény tábla, élő clickstream esemény feed, pipeline blueprint.

Gyakorló parancsok

Bootstrap riport (Python / Delta / Parquet / data quality)

Beolvassa a fixture JSON fájlokat, Bronze/Silver/Gold Parquet fájlokat generál, Delta Lake táblát próbál létrehozni, ellenőrzi a PostgreSQL kapcsolatot és teszteli a FastAPI health endpointot.

shell
docker compose exec lab-runner python /lab/runner/scripts/bootstrap_lab.py

Spark ETL indítása kézzel

Az Airflow DAG automatikusan is meghívja ezt a Spark jobot. Ezt a parancsot akkor használd, ha csak a Spark feldolgozást akarod külön futtatni.

shell
docker compose exec spark-master /opt/spark/bin/spark-submit --master spark://spark-master:7077 /opt/webshop-lab/spark/jobs/webshop_spark_etl.py

Kafka topicok és események

shell
# Topicok listázása
docker compose exec kafka /opt/apache/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

# Események olvasása
docker compose exec kafka /opt/apache/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic webshop.events --from-beginning --max-messages 10

dbt újrafuttatás

shell
docker compose exec dbt dbt run --profiles-dir /usr/app/profiles
docker compose exec dbt dbt test --profiles-dir /usr/app/profiles

Churn prediction és rendelés szimulálása

shell
# Churn prediction
curl -X POST http://localhost:8000/predict -H "Content-Type: application/json" -d '{"customer_id":"C-1842"}'

# Új rendelés
curl -X POST http://localhost:8000/api/simulate-order

Leállítás és takarítás

A normál leállítás megtartja a volume-okban lévő adatokat. A teljes törlés akkor kell, ha tiszta állapotból akarod újraépíteni a labot.

Normál leállítás

shell
docker compose down

Teljes reset volume-okkal

shell
docker compose down --volumes --remove-orphans

Architektúra

arch
┌─────────────────────────────────────────────────────────────────┐
│ WebShop Pro Frontend (nginx :8010)                              │
│  Bolt │ Admin │ Dashboard                                       │
└────────────┬────────────────────────────────────────────────────┘
             │ REST API
┌────────────▼────────────────────────────────────────────────────┐
│ FastAPI (:8000)                                                 │
│  /api/catalog  /api/orders  /api/events  /api/metrics           │
│  /api/simulate-order  /predict  /metrics (prometheus)           │
└────────────┬────────────────────────────────────────────────────┘
             │
┌────────────▼────────────────────────────────────────────────────┐
│ PostgreSQL (:5432)                                              │
│  raw.catalog │ raw.orders │ raw.events │ ml.predictions         │
│  analytics.* (views) │ ml.customer_features (view)              │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│ Kafka (:9092)                                                   │
│  webshop.events │ webshop.orders │ webshop.support              │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│ MinIO (:9000/:9001)                                             │
│  webshop-bronze │ webshop-silver │ webshop-gold │ webshop-artifacts │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│ MLflow (:5000) │ Grafana (:3000) │ Prometheus (:9090)           │
│ Airflow (:8088) │ dbt (:8092) │ Spark (:8090)                   │
│ ChromaDB (:8001) │ Streamlit (:8501) │ Jupyter (:8888)          │
└─────────────────────────────────────────────────────────────────┘

Megjegyzések

A WebShop Pro automatikusan generál rendeléseket 8-15 másodpercenként, így a Dashboard valós idejűnek hat.

A Databricks kurzushoz JupyterLab + Spark + MLflow + Unity Catalog OSS kombináció szolgál.

Kuberneteshez deployment manifest található a webshop-lab/kubernetes/ mappában.

OpenAI kulcs nélkül offline demo válasz fut; kulccsal a kurzusokban lehet valódi API hívást bekötni.

A ChromaDB előre feltöltődik a webshop szabályzataival (szállítás, garancia, visszaküldés).

Előfeltételek: Docker Desktop (Windows/Mac) vagy Docker Engine + Docker Compose v2 (Linux), minimum 8 GB RAM, 20 GB szabad lemezterület.