services: db: image: postgres:16-alpine container_name: 004erpdb environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5 volumes: [postgres_data:/var/lib/postgresql/data] redis: image: redis:7-alpine container_name: 004erpredis volumes: [redis_data:/data] # Lean optimizacija: Ograničavamo maksimalnu potrošnju memorije samog Redisa na 100MB # i aktiviramo LRU algoritam koji automatski briše najstarije ključeve ako se limit prijeđe. command: redis-server --appendonly yes --maxmemory 100mb --maxmemory-policy allkeys-lru worker: container_name: 004erpworker build: context: ./backend dockerfile: Dockerfile command: celery -A core worker --loglevel=info user: "1000:1000" volumes: - ./backend:/app - media_volume:/app/media env_file: - .env depends_on: db: { condition: service_healthy } redis: { condition: service_started } deploy: resources: limits: memory: 512M volumes: postgres_data: redis_data: media_volume: # Ovo je ključno za tvoj ERP