fix(publisher): медиа постов не публиковалось в Telegram — контейнер монтировал media/media вместо media

Причина: compose монтировал ../../media/media:/srv/publisher/media, а краулер
с 2026-09-12 качает файлы в media/<file> (новая раскладка). В контейнере
Path(media/<file>).exists() = False → медиа молча пропускалось, уходил только
текст (пост #1017).

Фикс: монтировать весь ../../media + _resolve_media() в publisher
(пробует media/<file>, media/media/<basename>). GoToSocial тоже.
Change fix-media-mount (skip_specs: багфикс), e2e: media_message_id задан,
тестовые сообщения удалены.
This commit is contained in:
kpa39l
2026-09-14 18:29:54 +00:00
parent a6cf605f52
commit ee2f8ac61a
6 changed files with 207 additions and 8 deletions
+5 -4
View File
@@ -14,10 +14,11 @@ services:
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
# медиа для карточек: веб шлёт media/<file> (media_path из БД).
# Физически файлы лежат в /opt/vesti/media/media/ (вложенный каталог, см. download_media в краулере).
# Монтируем именно внутренний каталог, чтобы Path('media/<file>') в контейнере (от WORKDIR /srv/publisher) попал в файл.
- ../../media/media:/srv/publisher/media:ro
# ВЕСЬ каталог медиа (не media/media): краулер с 2026-09-12 качает в
# media/<file>, старые лежали в media/media/<file>. Обе раскладки
# доступны в контейнере: /srv/publisher/media/<file> и
# /srv/publisher/media/media/<file>.
- ../../media:/srv/publisher/media:ro
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request;urllib.request.urlopen('http://127.0.0.1:8410/healthz',timeout=4)"]
interval: 30s