make up иногда завершался ошибкой image already exists. Несколько служб одновременно собирали общий образ Airflow или Superset и экспортировали один тег.
Что
Теперь каждый общий образ собирает одна служба инициализации. Остальные службы используют готовый image. Причина записана в ADR 0001.
три запуска make up на двух машинах прошли проблемный участок без image already exists.
## Зачем
`make up` иногда завершался ошибкой `image already exists`. Несколько служб одновременно собирали общий образ Airflow или Superset и экспортировали один тег.
## Что
Теперь каждый общий образ собирает одна служба инициализации. Остальные службы используют готовый `image`. Причина записана в ADR 0001.
## Проверка
- `make config-test`;
- `docker compose --progress plain build superset superset-init airflow-scheduler airflow-init`;
- три запуска `make up` на двух машинах прошли проблемный участок без `image already exists`.
- Зачем:
- make up иногда падал, когда несколько служб параллельно экспортировали один тег образа.
- Что:
- сборка образов Airflow и Superset закреплена за службами инициализации.
- зависимые службы только используют готовый образ, решение описано в ADR 0001.
- Проверка:
- make config-test.
- docker compose --progress plain build superset superset-init airflow-scheduler airflow-init.
- два запуска make up прошли экспорт трёх уникальных тегов без image already exists.
- Зачем:
- ADR и комментарии повторяли устройство Compose и говорили о сборке безлично.
- Что:
- в Compose оставлен один указатель на причину решения.
- ADR хранит правило общей сборки и объясняет гонку Buildx.
- Проверка:
- make config-test.
- git diff --check.
ddmitry
merged commit 2a13f46a6d into main2026-08-28 13:05:19 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Зачем
make upиногда завершался ошибкойimage already exists. Несколько служб одновременно собирали общий образ Airflow или Superset и экспортировали один тег.Что
Теперь каждый общий образ собирает одна служба инициализации. Остальные службы используют готовый
image. Причина записана в ADR 0001.Проверка
make config-test;docker compose --progress plain build superset superset-init airflow-scheduler airflow-init;make upна двух машинах прошли проблемный участок безimage already exists.