diff --git a/compose.yaml b/compose.yaml index 73940ef..885699d 100644 --- a/compose.yaml +++ b/compose.yaml @@ -48,6 +48,8 @@ x-kafka-target: &kafka-target x-world-starting-days: &world-starting-days "8" +# Общие образы Airflow и Superset собирают службы инициализации. Причина +# отдельного build: ADR 0001. x-airflow-common: &airflow-common image: clickstream-airflow:local environment: @@ -253,8 +255,6 @@ services: airflow-init: <<: *airflow-common - # Общий образ собирает один владелец. Остальные службы зависят от init и - # не запускают параллельный экспорт того же тега через Buildx. build: context: ./infra/airflow user: "0:0" @@ -340,7 +340,6 @@ services: superset-init: <<: *superset-common - # Superset использует тот же образ после успешной подготовки. build: context: ./infra/superset restart: "no" diff --git a/docs/adr/0001-stand-services.md b/docs/adr/0001-stand-services.md index 7fdc90c..9282dc0 100644 --- a/docs/adr/0001-stand-services.md +++ b/docs/adr/0001-stand-services.md @@ -16,11 +16,11 @@ возвращает единицу — поведение проверено при исполнении #37. Зависимость включает результат подготовки в общий граф ожидания. -Каждый общий локальный образ собирает одна служба: `airflow-init` владеет -сборкой образа Airflow, `superset-init` — образа Superset. Зависимые процессы -только используют готовый образ. `docker compose up --build` собирает образы -до запуска контейнеров; повторять `build` у каждого процесса не нужно, а -Buildx 0.30.1 при параллельном экспорте одного тега иногда отвечает +У каждого общего локального образа один блок `build`. Он находится у службы +инициализации. Остальные службы зависят от неё и используют тот же `image`. +`docker compose up --build` завершает сборку до запуска контейнеров, поэтому +одного блока достаточно. В Buildx 0.30.1 одинаковые блоки у нескольких служб +запускают параллельный экспорт одного тега. Иногда сборка завершается ошибкой `image already exists`. Для входа выбран SimpleAuthManager. У него нет команды создания пользователя,