1Docker ellenőrzése
Nézd meg, hogy a CLI és a Compose plugin elérhető-e.
docker --version
docker compose version
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.
# 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.
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.
| Profil | Parancs | Service-ek | RAM |
|---|---|---|---|
core (alap) | docker compose up -d | course-site, webshop, postgres, adminer | ~400 MB |
sql | --profile sql | core (csak postgres) | ~400 MB |
python | --profile python | core + lab-runner | ~1 GB |
docker | --profile docker | core + minio, spark, airflow, monitoring | ~3.5 GB |
delta | --profile delta | core + minio, spark, lab-runner | ~3 GB |
spark | --profile spark | core + spark, databricks, mlflow, unity | ~5 GB |
databricks | --profile databricks | core + databricks, spark, mlflow, unity | ~5 GB |
airflow | --profile airflow | core + airflow | ~1.5 GB |
dbt | --profile dbt | core + dbt | ~1 GB |
streaming | --profile streaming | core + kafka, spark, kafka-ui | ~3 GB |
otf | --profile otf | core + minio, lab-runner, unity | ~2 GB |
ai-eng | --profile ai-eng | core + chroma, streamlit, api, mlflow | ~2 GB |
ai-de | --profile ai-de | core + kafka, minio, lab-runner, mlflow | ~3 GB |
aiops | --profile aiops | core + mlflow, api, monitoring | ~2 GB |
llmops | --profile llmops | core + mlflow, api, monitoring | ~2 GB |
rag | --profile rag | core + chroma, lab-runner, mlflow | ~2 GB |
all | --profile all | MINDEN service | ~7 GB |
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).
Nézd meg, hogy a CLI és a Compose plugin elérhető-e.
docker --version
docker compose version
Felépíti a saját image-eket és elindítja a teljes labot.
docker compose up -d --build
Gyors kép arról, melyik service fut és hol kell logot nézni.
docker compose ps
docker compose logs -f api airflow dbt
Újragenerálja a tanuló artifactokat, ha kézzel akarod futtatni.
docker compose exec lab-bootstrap python /lab/runner/scripts/bootstrap_lab.py
| Tünet | Mit nézz meg? | Javítás |
|---|---|---|
| Port ütközés | 5432, 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 fel | docker compose logs -f airflow | Első DB migrációkor türelem; 1-2 perc normális. |
| dbt kilép | docker compose logs dbt | A Postgresnek egészségesnek kell lennie; utána futtasd újra: docker compose up -d dbt. |
| Kafka topic nincs | docker compose logs kafka-init | Futtasd újra: docker compose up kafka-init. |
kafka-init vagy minio-init kilépett | Exit 0 státusz | Ez normális: ezek előkészítő service-ek, lefutnak, létrehozzák az erőforrásokat, majd befejeződnek. |
| Teljes reset kell | Régi volume-ok maradtak | docker compose down --volumes --remove-orphans, majd újraindítás. |
nincs loginnincs loginnincs loginadminadminnincs loginnincs loginminioadminminioadminnincs loginnincs loginnincs loginadminadminnincs loginnincs logintoken nélkülwebshopwebshopdb: webshopnincs loginserver: postgreswebshop / webshopnincs login| Kurzus | Compose service-ek | Előre betöltött anyag |
|---|---|---|
| SQL | postgres | raw.*, analytics.*, course.materials |
| Python | lab-runner, lab-bootstrap | JSON -> Parquet, quality report, /output/course-materials |
| Docker | teljes compose | minden service címkézve van kurzus szerint |
| Delta / Open formats | lab-runner, minio, unity-catalog | Bronze/Silver/Gold kimenetek, MinIO artifactok |
| Spark | spark-master, spark-worker | webshop_spark_etl.py, silver/gold Parquet kimenetek |
| Airflow | airflow, spark-master, spark-worker | webshop_daily_etl DAG, amely Spark ETL-t is submitol |
| dbt | dbt, postgres | staging és marts modellek, dbt docs |
| Streaming | kafka, event-producer | folyamatos clickstream események |
| AI/RAG | chroma, streamlit, api | support policy és kurzusösszefoglaló dokumentumok ChromaDB-ben |
| MLOps/LLMOps | mlflow, api, prometheus, grafana | MLflow demo run, FastAPI /predict, Grafana dashboard |
A http://localhost:8010/ címen elérhető dummy webshop három nézetet tartalmaz:
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).
Rendelések táblázat, készletkezelés, bevétel és rendelésszám statisztikák.
KPI metrikák (bevétel, konverzió, AOV, support ticketek), termék teljesítmény tábla, élő clickstream esemény feed, pipeline blueprint.
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.
docker compose exec lab-runner python /lab/runner/scripts/bootstrap_lab.py
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.
docker compose exec spark-master /opt/spark/bin/spark-submit --master spark://spark-master:7077 /opt/webshop-lab/spark/jobs/webshop_spark_etl.py
# 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
docker compose exec dbt dbt run --profiles-dir /usr/app/profiles
docker compose exec dbt dbt test --profiles-dir /usr/app/profiles
# 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
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.
docker compose down
docker compose down --volumes --remove-orphans
┌─────────────────────────────────────────────────────────────────┐
│ 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) │
└─────────────────────────────────────────────────────────────────┘
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.