fetch_ml/docker-compose.dev.yml
Jeremie Fraeys 8271277dc3
feat: implement research-grade maintainability phases 2, 5, 8, 10
Phase 2: Deterministic Manifests
- Add manifest.Validator with required field checking
- Support Validate() and ValidateStrict() modes
- Integrate validation into worker executor before execution
- Block execution if manifest missing commit_id or deps_manifest_sha256

Phase 5: Pinned Dependencies
- Add hermetic.dockerfile template with pinned system deps
- Frozen package versions: libblas3, libcudnn8, etc.
- Support for deps_manifest.json and requirements.txt with hashes
- Image tagging strategy: deps-<first-8-of-sha256>

Phase 8: Tests as Specifications
- Add queue_spec_test.go with executable scheduler specs
- Document priority ordering (higher first)
- Document FIFO tiebreaker for same priority
- Test cases for negative/zero priorities

Phase 10: Local Dev Parity
- Create root-level docker-compose.dev.yml
- Simplified from deployments/ for quick local dev
- Redis + API server + Worker with hot reload volumes
- Debug ports: 9101 (API), 6379 (Redis)
2026-02-18 15:34:28 -05:00

54 lines
1.4 KiB
YAML

# Developer-focused Docker Compose for local development
# Simplified from deployments/docker-compose.dev.yml for quick local dev
services:
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes
api-server:
build:
context: .
dockerfile: build/docker/simple.Dockerfile
ports:
- "9101:9101"
volumes:
- .:/workspace
- ./data/dev/logs:/logs
- ./data/dev/experiments:/data/experiments
- ./data/dev/active:/data/active
environment:
- LOG_LEVEL=debug
- LOG_FORMAT=text
- ENV=development
depends_on:
- redis
command: ["/bin/sh", "-c", "mkdir -p /data/experiments /data/active && exec /usr/local/bin/api-server -config /app/configs/api/dev.yaml"]
worker:
build:
context: .
dockerfile: build/docker/simple.Dockerfile
ports:
- "9102:9102"
volumes:
- .:/workspace
- ./data/dev/logs:/logs
- ./data/dev/active:/data/active
- ./data/dev/experiments:/data/experiments
- /var/run/docker.sock:/var/run/docker.sock
environment:
- LOG_LEVEL=debug
- LOG_FORMAT=text
- ENV=development
depends_on:
- redis
- api-server
command: ["/usr/local/bin/worker", "-config", "/app/configs/worker.yaml"]
volumes:
redis_data: