---
name: build-ml
description: Build ML server Docker containers
argument-hint: "[--push|--no-cache|model]"
---

# ML Server Builder

Build Docker containers for ML server components.

## Usage

- `/build-ml` - Build all ML containers
- `/build-ml --no-cache` - Build without cache
- `/build-ml --push` - Build and push to registry
- `/build-ml finrl` - Build specific model container
- `/build-ml --cpu` - Build CPU-only versions

## ML Server Structure

```
services/ml-server/
├── docker-compose.yml      # ML services orchestration
├── docker-compose.dev.yml  # Development config
├── Dockerfile              # Base ML image
├── finrl/                  # FinRL deep learning
├── stockmixer/             # Stock mixing models
├── master/                 # Master orchestrator
├── samba/                  # Samba models
├── macrohft/               # Macro HFT models
└── src/                    # Shared ML code
```

## Available Models

- `finrl` - Deep reinforcement learning (FinRL)
- `stockmixer` - Multi-asset mixing
- `master` - Model orchestration
- `samba` - Samba-based models
- `macrohft` - Macro HFT strategies

## Instructions

When this skill is invoked:

1. Parse arguments:
   - `--no-cache`: Add `--no-cache` to docker build
   - `--push`: Push to container registry after build
   - `--cpu`: Use CPU-only base images
   - Model name: Build only that model's container

2. Navigate to ML server directory:
   ```bash
   cd services/ml-server
   ```

3. Build containers:
   ```bash
   # All containers
   docker compose build $NO_CACHE

   # Specific model
   docker compose build $MODEL $NO_CACHE
   ```

4. If `--push` specified:
   - Verify registry credentials
   - Tag images appropriately
   - Push to registry:
     ```bash
     docker compose push $MODEL
     ```

5. Report build results:
   - Build time per container
   - Final image sizes
   - Any build warnings
   - Layer cache efficiency

6. Common build issues:
   - **CUDA not found**: Use `--cpu` flag or install NVIDIA container toolkit
   - **Out of memory**: Increase Docker memory limit
   - **Pip install fails**: Check requirements.txt for version conflicts
   - **Model weights missing**: Download from model registry first

## Image Tags

- `latest` - Most recent build
- `v{version}` - Release versions
- `{git-sha}` - Specific commit builds
- `cpu` - CPU-only builds
