feat(infra): Phase 2.3 — add memory limits to Docker services
deploy.resources.limits.memory applied per roadmap table. Limits derived from 2-day RSS baseline (2026-05-27-29). Takes effect on next docker compose up — no running containers affected. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
263bee6886
commit
f91d5d57a1
@ -61,6 +61,10 @@ services:
|
|||||||
retries: 12
|
retries: 12
|
||||||
start_period: 20s
|
start_period: 20s
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1g
|
||||||
|
|
||||||
azurite:
|
azurite:
|
||||||
image: mcr.microsoft.com/azure-storage/azurite:3.35.0
|
image: mcr.microsoft.com/azure-storage/azurite:3.35.0
|
||||||
@ -75,6 +79,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 6
|
retries: 6
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 256m
|
||||||
|
|
||||||
mailpit:
|
mailpit:
|
||||||
image: axllent/mailpit:v1.27.5
|
image: axllent/mailpit:v1.27.5
|
||||||
@ -87,6 +95,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 6
|
retries: 6
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 128m
|
||||||
|
|
||||||
loki:
|
loki:
|
||||||
image: grafana/loki:3.3.2
|
image: grafana/loki:3.3.2
|
||||||
@ -102,6 +114,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 384m
|
||||||
|
|
||||||
grafana:
|
grafana:
|
||||||
image: grafana/grafana:11.4.0
|
image: grafana/grafana:11.4.0
|
||||||
@ -124,6 +140,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 384m
|
||||||
|
|
||||||
prometheus:
|
prometheus:
|
||||||
image: prom/prometheus:v3.5.0
|
image: prom/prometheus:v3.5.0
|
||||||
@ -147,6 +167,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 384m
|
||||||
|
|
||||||
node-exporter:
|
node-exporter:
|
||||||
image: prom/node-exporter:v1.9.1
|
image: prom/node-exporter:v1.9.1
|
||||||
@ -163,6 +187,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 128m
|
||||||
|
|
||||||
cadvisor:
|
cadvisor:
|
||||||
image: gcr.io/cadvisor/cadvisor:v0.49.1
|
image: gcr.io/cadvisor/cadvisor:v0.49.1
|
||||||
@ -184,6 +212,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 256m
|
||||||
|
|
||||||
valkey:
|
valkey:
|
||||||
image: valkey/valkey:8-alpine
|
image: valkey/valkey:8-alpine
|
||||||
@ -204,6 +236,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 128m
|
||||||
|
|
||||||
gateway:
|
gateway:
|
||||||
image: traefik:v3.3
|
image: traefik:v3.3
|
||||||
@ -225,6 +261,10 @@ services:
|
|||||||
loki:
|
loki:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 128m
|
||||||
|
|
||||||
caddy:
|
caddy:
|
||||||
image: caddy:2-alpine
|
image: caddy:2-alpine
|
||||||
@ -244,6 +284,10 @@ services:
|
|||||||
mcp-server:
|
mcp-server:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 256m
|
||||||
|
|
||||||
# ═════════════════════════════════════════════════════════════════
|
# ═════════════════════════════════════════════════════════════════
|
||||||
# PLATFORM SERVICES (from this repo)
|
# PLATFORM SERVICES (from this repo)
|
||||||
@ -279,6 +323,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
extraction-service:
|
extraction-service:
|
||||||
build:
|
build:
|
||||||
@ -304,6 +352,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
mcp-server:
|
mcp-server:
|
||||||
build:
|
build:
|
||||||
@ -330,6 +382,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 384m
|
||||||
|
|
||||||
# ═════════════════════════════════════════════════════════════════
|
# ═════════════════════════════════════════════════════════════════
|
||||||
# PLATFORM DASHBOARDS (from this repo)
|
# PLATFORM DASHBOARDS (from this repo)
|
||||||
@ -359,6 +415,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
tracker-web:
|
tracker-web:
|
||||||
build:
|
build:
|
||||||
@ -381,6 +441,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
# ═════════════════════════════════════════════════════════════════
|
# ═════════════════════════════════════════════════════════════════
|
||||||
# PRODUCT BACKENDS (from sibling repos)
|
# PRODUCT BACKENDS (from sibling repos)
|
||||||
@ -406,6 +470,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
chronomind-backend:
|
chronomind-backend:
|
||||||
build:
|
build:
|
||||||
@ -427,6 +495,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
jarvisjr-backend:
|
jarvisjr-backend:
|
||||||
build:
|
build:
|
||||||
@ -448,6 +520,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
nomgap-backend:
|
nomgap-backend:
|
||||||
build:
|
build:
|
||||||
@ -469,6 +545,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
mindlyst-backend:
|
mindlyst-backend:
|
||||||
build:
|
build:
|
||||||
@ -490,6 +570,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
lysnrai-backend:
|
lysnrai-backend:
|
||||||
build:
|
build:
|
||||||
@ -511,6 +595,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
notelett-backend:
|
notelett-backend:
|
||||||
build:
|
build:
|
||||||
@ -533,6 +621,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
flowmonk-backend:
|
flowmonk-backend:
|
||||||
build:
|
build:
|
||||||
@ -554,6 +646,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
actiontrail-backend:
|
actiontrail-backend:
|
||||||
build:
|
build:
|
||||||
@ -575,6 +671,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
localmemgpt-backend:
|
localmemgpt-backend:
|
||||||
build:
|
build:
|
||||||
@ -601,6 +701,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
efforise-backend:
|
efforise-backend:
|
||||||
build:
|
build:
|
||||||
@ -624,6 +728,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
# ═════════════════════════════════════════════════════════════════
|
# ═════════════════════════════════════════════════════════════════
|
||||||
# PRODUCT WEB APPS (from sibling repos)
|
# PRODUCT WEB APPS (from sibling repos)
|
||||||
@ -656,6 +764,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
chronomind-web:
|
chronomind-web:
|
||||||
build:
|
build:
|
||||||
@ -682,6 +794,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
jarvisjr-web:
|
jarvisjr-web:
|
||||||
build:
|
build:
|
||||||
@ -707,6 +823,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
flowmonk-web:
|
flowmonk-web:
|
||||||
build:
|
build:
|
||||||
@ -734,6 +854,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
notelett-web:
|
notelett-web:
|
||||||
build:
|
build:
|
||||||
@ -760,6 +884,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
mindlyst-web:
|
mindlyst-web:
|
||||||
build:
|
build:
|
||||||
@ -785,6 +913,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
# TODO(nomgap): Decide whether local Docker smoke tests still need a web
|
# TODO(nomgap): Decide whether local Docker smoke tests still need a web
|
||||||
# service once the Vercel deployment path is fully documented.
|
# service once the Vercel deployment path is fully documented.
|
||||||
@ -816,6 +948,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
localmemgpt-web:
|
localmemgpt-web:
|
||||||
build:
|
build:
|
||||||
@ -843,6 +979,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
efforise-web:
|
efforise-web:
|
||||||
build:
|
build:
|
||||||
@ -860,6 +1000,10 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
# ── Local LLM Lab (no backend — dashboard talks directly to Ollama) ──
|
# ── Local LLM Lab (no backend — dashboard talks directly to Ollama) ──
|
||||||
|
|
||||||
@ -887,6 +1031,10 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
|
||||||
# ═════════════════════════════════════════════════════════════════
|
# ═════════════════════════════════════════════════════════════════
|
||||||
# VOLUMES
|
# VOLUMES
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user