FROM docker.io/library/python:3.12-slim WORKDIR /app COPY requirements.txt . RUN apt-get update && apt-get install -y --no-install-recommends \ docker.io \ podman \ && rm -rf /var/lib/apt/lists/* \ && pip install --no-cache-dir -r requirements.txt RUN mkdir -p /app/data COPY app/ ./app/ COPY config/ ./config/ EXPOSE 8100 5514 # Appliance-style defaults for host-network deployment. Override via env or # systemd EnvironmentFile when needed. ENV MARVIS_PROMETHEUS_URL=http://127.0.0.1:9090 ENV MARVIS_PROMETHEUS_PREFIX=/prometheus ENV MARVIS_ALERTMANAGER_URL=http://127.0.0.1:9093 ENV MARVIS_LOG_INGEST_ENABLED=true ENV MARVIS_LOG_AUTO_CONFIGURE=true ENV MARVIS_LOG_RECEIVER_BIND_HOST=0.0.0.0 ENV MARVIS_LOG_RECEIVER_PORT=5514 ENV MARVIS_LOG_RECEIVER_FORMAT=json_lines ENV MARVIS_LOG_BUFFER_LINES=1000 ENV MARVIS_LOG_TRACE_BUFFER_LINES=5000 ENV MARVIS_LOG_ALERT_CONTEXT_BEFORE=5 ENV MARVIS_LOG_ALERT_CONTEXT_AFTER=5 ENV MARVIS_LOG_ALERT_CONTEXT_DB_PATH=/app/data/marvis-alert-context.db ENV MARVIS_LOG_ALERT_CONTEXT_DB_MAX_ROWS=500 ENV MARVIS_LOG_FLUENTBIT_MATCH=* ENV MARVIS_AI_MODE=rule ENV MARVIS_CONTAINER_RUNTIME=docker ENV MARVIS_UERANSIM_ENV_FILE=/app/config/ueransim.env # MARVIS_AI_MODE=openai → set MARVIS_OPENAI_API_KEY # MARVIS_AI_MODE=ollama → set MARVIS_OLLAMA_URL + MARVIS_OLLAMA_MODEL CMD ["python", "-m", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8100"]