Ужесточить контейнеры сервисов

Прикладные образы работают non-root (deal, UID 10001, HOME=/tmp); в compose добавлены read_only root FS, tmpfs /tmp, no-new-privileges, cap_drop ALL и лимиты mem/cpus. Логи stateless-сервисов вынесены в /tmp/logs. Проверено compose config (dev/prod/observability).
This commit is contained in:
Rustam Khalimov
2026-09-11 17:39:45 +03:00
parent d2b716bbf4
commit 38561528ab
9 changed files with 99 additions and 3 deletions
@@ -35,4 +35,11 @@ COPY --from=ghcr.io/grpc-ecosystem/grpc-health-probe:v0.4.35 /ko-app/grpc-health
# Сессии тенантов — файлы /data/sessions (Ruling 3): каталог монтируется volume-ом deal_tg_sessions
# из compose.dev.yml; создаётся при первом сохранении сессии (задачи 9–11).
# Non-root: процесс работает пользователем deal (UID 10001); /data/sessions — каталог сессий (volume).
RUN useradd --uid 10001 --shell /usr/sbin/nologin --no-create-home deal \
&& mkdir -p /data/sessions \
&& chown -R deal:deal /data/sessions
ENV HOME=/tmp
USER deal
ENTRYPOINT ["dotnet", "Deal.Telegram.dll"]