services: ops-db: image: postgres:16-alpine container_name: desineuron-ops-db environment: POSTGRES_DB: ${OPS_DB_NAME} POSTGRES_USER: ${OPS_DB_USER} POSTGRES_PASSWORD: ${OPS_DB_PASSWORD} ports: - "5435:5432" volumes: - ./data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${OPS_DB_USER} -d ${OPS_DB_NAME}"] interval: 10s timeout: 5s retries: 10 restart: unless-stopped ops-api: build: context: ./app container_name: desineuron-ops-api command: ["python", "-m", "ops_control_plane.main"] env_file: - .env environment: OPS_ROLE: api ports: - "18765:8080" depends_on: ops-db: condition: service_healthy volumes: - ./exports:/app/exports - ./logs:/app/logs - ./state:/app/state - ${OPS_MODEL_LIBRARY_HOST_PATH:-/mnt/ServerStorage/ai-models/models}:/model-library:ro restart: unless-stopped ops-worker: build: context: ./app container_name: desineuron-ops-worker command: ["python", "-m", "ops_control_plane.worker"] env_file: - .env environment: OPS_ROLE: worker depends_on: ops-db: condition: service_healthy volumes: - ./exports:/app/exports - ./logs:/app/logs - ./state:/app/state - ${OPS_MODEL_LIBRARY_HOST_PATH:-/mnt/ServerStorage/ai-models/models}:/model-library:ro restart: unless-stopped