From e06b9f8b5263969d31ffd65be457cb3ea81d2421 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Thu, 29 Oct 2026 10:22:23 +0100 Subject: [PATCH] =?UTF-8?q?fix(stack):=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=BE=D0=B3=D1=80=D0=B0=D0=BD=D0=B8=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20localhost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ START_HERE.md | 2 ++ docker-compose.yml | 16 ++++++++-------- docs/stack_reference.md | 2 ++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8545ae3..9a7a468 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Lakehouse без магии +Все порты стенда публикуются только на `127.0.0.1`. На удалённой машине открывай нужные интерфейсы через SSH-туннель; прямой доступ по внешнему IP закрыт. + Практический курс, после которого ты будешь уверенно работать с Lakehouse-стеком: поднимать стенд, строить пайплайн `raw -> bronze -> silver`, читать одну таблицу из двух движков и не бояться изменений в данных. ## Что ты получишь diff --git a/START_HERE.md b/START_HERE.md index be37958..8afc0e0 100644 --- a/START_HERE.md +++ b/START_HERE.md @@ -1,5 +1,7 @@ # START HERE +Порты стенда доступны только на `127.0.0.1` машины с Docker. Для удалённого стенда используй SSH-туннель к нужному порту, например `ssh -N -L 8080:127.0.0.1:8080 user@host` для Spark UI. + Здесь ты подготовишь окружение и выполнишь первое вычисление в Spark. К концу запуска в ноутбуке появится `Spark cluster smoke test passed.`, а результат сохранится в файле на твоем компьютере. Smoke test — короткая проверка, что diff --git a/docker-compose.yml b/docker-compose.yml index 8e04b70..ad8cf19 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,7 +8,7 @@ services: POSTGRES_USER: iceberg POSTGRES_PASSWORD: iceberg ports: - - "5432:5432" # опционально, чтобы заходить с хоста через DBeaver/psql + - "127.0.0.1:5432:5432" # опционально, чтобы заходить с хоста через DBeaver/psql networks: - spark-net volumes: @@ -71,8 +71,8 @@ services: - AWS_SECRET_ACCESS_KEY=minioadmin command: ["/opt/spark/sbin/start-master.sh"] ports: - - "7077:7077" # Spark master - - "8080:8080" # Web UI мастера + - "127.0.0.1:7077:7077" # Spark master + - "127.0.0.1:8080:8080" # Web UI мастера volumes: - ./spark/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf:ro @@ -94,7 +94,7 @@ services: depends_on: - spark-master ports: - - "8081:8081" # Web UI первого воркера + - "127.0.0.1:8081:8081" # Web UI первого воркера volumes: - ./spark/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf:ro @@ -116,7 +116,7 @@ services: depends_on: - spark-master ports: - - "8082:8081" # Web UI второго воркера (host 8082) + - "127.0.0.1:8082:8081" # Web UI второго воркера (host 8082) volumes: - ./spark/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf:ro @@ -132,8 +132,8 @@ services: - MINIO_ROOT_USER=minioadmin - MINIO_ROOT_PASSWORD=minioadmin ports: - - "9000:9000" - - "9001:9001" + - "127.0.0.1:9000:9000" + - "127.0.0.1:9001:9001" volumes: - minio-data:/data @@ -245,7 +245,7 @@ services: - AWS_SECRET_ACCESS_KEY=minioadmin - AWS_REGION=us-east-1 ports: - - "8090:8080" # Web UI Trino + - "127.0.0.1:8090:8080" # Web UI Trino volumes: - ./trino/catalog:/etc/trino/catalog:ro - ./trino/jvm.config:/etc/trino/jvm.config:ro diff --git a/docs/stack_reference.md b/docs/stack_reference.md index 015c48f..e668f72 100644 --- a/docs/stack_reference.md +++ b/docs/stack_reference.md @@ -1,5 +1,7 @@ # Технический reference стенда +Все опубликованные порты привязаны к `127.0.0.1` хоста. Соединения между контейнерами идут по сети Compose. Для доступа с другого компьютера используй SSH-туннель, например `ssh -N -L 8080:127.0.0.1:8080 user@host` для Spark UI. Публикация портов на всех интерфейсах открывает учебные сервисы без аутентификации внешним клиентам; обычные входящие правила UFW могут не фильтровать опубликованные Docker-порты. + Этот документ описывает сам стенд как runtime-среду: сервисы, порты, доступ, основные команды и smoke-тесты. Если нужен первый student onboarding, используй [START_HERE.md](../START_HERE.md). Если нужна программа курса, используй [course_program.md](./course_program.md).