# Development compose stack: autopilot + mock detections + mock missions +
# mock ground-station. The mocks are placeholders today; per-component tasks
# (AZ-660 detection_client, AZ-644 mission_client, AZ-675 telemetry_stream)
# will land real mock images they target.
#
# Reference: _docs/02_document/deployment/containerization.md §4.

services:
  autopilot:
    build:
      context: .
      dockerfile: Dockerfile
    image: azaion/autopilot:dev
    restart: unless-stopped
    environment:
      AUTOPILOT_CONFIG: /etc/azaion/autopilot/config.toml
      RUST_LOG: ${RUST_LOG:-info,autopilot=debug}
      AUTOPILOT_HEALTH_BIND: 0.0.0.0:8080
    volumes:
      - ./config/autopilot.dev.toml:/etc/azaion/autopilot/config.toml:ro
      - autopilot-state:/var/lib/autopilot
    ports:
      - "8080:8080"
    depends_on:
      - mock-detections
      - mock-missions
      - mock-ground-station

  mock-detections:
    image: nginx:alpine
    # Placeholder. Replaced by the real mock gRPC service in AZ-660.
    # Provides a stand-in port so `depends_on` resolves during bring-up.
    ports:
      - "50051:80"

  mock-missions:
    image: nginx:alpine
    # Placeholder. Replaced by the real mock missions HTTPS service in AZ-644.
    ports:
      - "8443:80"

  mock-ground-station:
    image: nginx:alpine
    # Placeholder. Replaced by the real mock Ground Station service in AZ-675.
    ports:
      - "8444:80"

volumes:
  autopilot-state: {}
