# Конфигурация Docker на сервере

## Рекомендации для серверов с ограниченной RAM (8 GB)

### 1. Ограничение BuildKit cache

Чтобы BuildKit cache не раздувался до 80+ GB:

```bash
# Создать или отредактировать
sudo nano /etc/docker/daemon.json
```

Содержимое:

```json
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "10GB",
      "enabled": true
    }
  },
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
```

Затем перезапуск:

```bash
sudo systemctl restart docker
```

### 2. Очистка build cache

Если нужно освободить место вручную:

```bash
# Удалить неиспользуемый build cache (осторожно: следующая сборка будет дольше)
docker builder prune -af

# Или с ограничением по возрасту (старше 7 дней)
docker builder prune -af --filter "until=168h"
```

### 3. Frontend Dockerfile — лимит памяти Node.js

В `front_material/Dockerfile` уже задано:

```dockerfile
ENV NODE_OPTIONS="--max-old-space-size=2048"
```

Это ограничивает heap Node.js до 2 GB при сборке и снижает риск OOM и тяжёлого swapping на машинах с 8 GB RAM.

### 4. Swap

Рекомендуется swap 4–8 GB на серверах с 8 GB RAM — для стабильности при пиковых нагрузках.
