Перейти к основному содержимому

Stateless-инвариант

Файловая система runtime-контейнера в Layero эфемерна. Это продуктовая граница платформы, а не временный технический долг — те же ограничения у Vercel / Netlify / Cloudflare Workers.

Что значит «эфемерна»

  • При cold start контейнер поднимается из чистого образа. Всё, что предыдущий инстанс записал в локальную FS, пропадает.
  • Остановить контейнер платформа может в любой момент простоя (см. Жизненный цикл) — рассчитывать на «файл доживёт до завтра» нельзя даже при регулярном трафике.
  • Для быстрых временных файлов есть /tmp (in-memory, 64 MB). Содержимое живёт только пока жив текущий инстанс.

Что НЕ работает

  • SQLite с записью — БД переживёт только время жизни инстанса.
  • node-persist, lowdb, nedb и любые «файловые БД».
  • Файловые сессииexpress-session с FileStore, файловые сессии в Flask, Streamlit с локальным ~/.streamlit/session.json и т. п.
  • Запись пользовательских загрузок на диск — файл пропадёт при следующем запросе.
  • In-process кеш между запросами для multi-pod деплоев — каждый pod не видит кеш остальных.

Что РАБОТАЕТ

  • Read-only SQLite с контентом, зашитым в образ.
  • In-process кеш в рамках одного pod'а — пока pod жив, кеш живёт.
  • Временные файлы в /tmp в пределах одного запроса.

Как делать правильно

ЗадачаРешение
Persistent данныеВнешний managed Postgres (например, YC Managed PostgreSQL).
КешВнешний Redis (YC Managed Redis).
Загруженные файлыВнешний S3-совместимый сторадж (Yandex Object Storage).
СессииJWT в cookie или Redis-store.

Если ваше приложение обязано иметь локальный диск — вероятно, Layero вам не подойдёт. Платформа не предоставляет persistent volumes ни сейчас, ни в плане.