fix(compose): устранена гонка сборки общих образов #178

Merged
ddmitry merged 2 commits from fix/compose-shared-image-build into main 2026-08-28 13:05:19 +03:00
2 changed files with 7 additions and 8 deletions
Showing only changes of commit cd4f9c55f5 - Show all commits

No files matched your search

+2 -3
View File
@@ -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"
+5 -5
View File
@@ -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. У него нет команды создания пользователя,