fix(compose): устранена гонка сборки общих образов
- Зачем: - 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.
This commit is contained in:
1 parent
5946175efa
commit
1f203c974d
2 files changed
+14
-4
No files matched your search
+7
-4
@@ -50,8 +50,6 @@ x-world-starting-days: &world-starting-days "8"
|
||||
|
||||
x-airflow-common: &airflow-common
|
||||
image: clickstream-airflow:local
|
||||
build:
|
||||
context: ./infra/airflow
|
||||
environment:
|
||||
AIRFLOW__CORE__EXECUTOR: LocalExecutor
|
||||
AIRFLOW__CORE__PARALLELISM: "4"
|
||||
@@ -105,8 +103,6 @@ x-generator-common: &generator-common
|
||||
|
||||
x-superset-common: &superset-common
|
||||
image: clickstream-superset:local
|
||||
build:
|
||||
context: ./infra/superset
|
||||
environment:
|
||||
SUPERSET_CONFIG_PATH: /app/pythonpath/superset_config.py
|
||||
SUPERSET_SECRET_KEY: ${SUPERSET_SECRET_KEY:?Скопируйте .env.example в .env}
|
||||
@@ -257,6 +253,10 @@ services:
|
||||
|
||||
airflow-init:
|
||||
<<: *airflow-common
|
||||
# Общий образ собирает один владелец. Остальные службы зависят от init и
|
||||
# не запускают параллельный экспорт того же тега через Buildx.
|
||||
build:
|
||||
context: ./infra/airflow
|
||||
user: "0:0"
|
||||
restart: "no"
|
||||
depends_on:
|
||||
@@ -340,6 +340,9 @@ services:
|
||||
|
||||
superset-init:
|
||||
<<: *superset-common
|
||||
# Superset использует тот же образ после успешной подготовки.
|
||||
build:
|
||||
context: ./infra/superset
|
||||
restart: "no"
|
||||
healthcheck:
|
||||
disable: true
|
||||
|
||||
Reference in new issue
Block a user