From 6f9a77f6dbc62301db007865e11e64f4ab22a145 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Wed, 26 Aug 2026 12:03:23 +0300 Subject: [PATCH] =?UTF-8?q?fix(caddy):=20=D1=81=D0=BC=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D1=81=D0=BD=D0=B8?= =?UTF-8?q?=D0=BF=D0=BF=D0=B5=D1=82=D1=8B=20=D0=BC=D0=B5=D1=82=D1=80=D0=B8?= =?UTF-8?q?=D0=BA=20=E2=80=94=20=D0=B1=D0=B5=D0=B7=20=D0=BD=D0=B8=D1=85=20?= =?UTF-8?q?Caddy=20=D0=B2=D0=B0=D0=BB=D0=B8=D1=82=20=D0=92=D0=95=D0=A1?= =?UTF-8?q?=D0=AC=20=D0=BF=D1=80=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #3102 добавил caddy/metrics-ingest.caddy.snippet и metrics-ui.caddy.snippet плюс `import ../metrics-*.caddy.snippet` в caddy/sites/infra.caddy, но не добавил bind-монты в docker-compose.prod.yml. Каталог caddy/ внутрь контейнера целиком не пробрасывается — только пофайлово (как users.caddy.snippet) плюс каталоги caddy/local и caddy/sites. Файлы лежали на хосте, но внутри контейнера их не было. Итог на проде 2026-08-26 ~11:26 MSK: Caddy не смог адаптировать конфиг (`File to import not found: ../metrics-ingest.caddy.snippet, at /etc/caddy/caddy/sites/infra.caddy:87`) и ушёл в restart-loop. Легли ВСЕ сайты хоста — gendsgn.ru, merahome.ru, обе mera-витрины, а не только metrics.gendsgn.ru, ради которого сниппет и добавляли. Монтируем оба файла явно, рядом с users.caddy.snippet. --- docker-compose.prod.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index b0c6e582..475c4c5b 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -700,6 +700,13 @@ services: volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - ./caddy/users.caddy.snippet:/etc/caddy/caddy/users.caddy.snippet:ro + # #3102 postmortem: сниппеты метрик импортируются из caddy/sites/infra.caddy + # (`import ../metrics-*.caddy.snippet`). Смонтированы ПОФАЙЛОВО, как + # users.caddy.snippet — сам каталог caddy/ внутрь не пробрасывается. + # Забыть монт = Caddy не адаптирует конфиг и уходит в restart-loop, + # роняя ВСЕ сайты хоста, а не только metrics.gendsgn.ru. + - ./caddy/metrics-ingest.caddy.snippet:/etc/caddy/caddy/metrics-ingest.caddy.snippet:ro + - ./caddy/metrics-ui.caddy.snippet:/etc/caddy/caddy/metrics-ui.caddy.snippet:ro # Untracked локальные site-блоки (см. import в конце Caddyfile). Каталог # держится в git через caddy/local/.gitignore — иначе docker создал бы # отсутствующий bind-source сам, root-owned пустышкой.