Items completed: 1. Merged PR #2 (starlette/httpx deps) 2. Fixed async race condition in multimodal_ui.py 3. Wired TTSAdapter (ElevenLabs, Azure) in API routes 4. Moved super_big_brain.py from core/ to reasoning/ (backward compat shim) 5. Added API authentication middleware (Bearer token via FUSIONAGI_API_KEY) 6. Added async adapter interface (acomplete/acomplete_structured) 7. Migrated FastAPI on_event to lifespan (fixes 20 deprecation warnings) 8. Liquid Neural Networks (continuous-time adaptive weights) 9. Quantum-AI Hybrid compute backend (simulator + optimization) 10. Embodied Intelligence / Robotics bridge (actuator + sensor protocols) 11. Consciousness Engineering (formal self-model with introspection) 12. ASI Scoring Rubric (C/A/L/N/R self-assessment harness) 13. GPU integration tests for TensorFlow backend 14. Multi-stage production Dockerfile 15. Gitea CI/CD pipeline (lint, test matrix, Docker build) 16. API rate limiting middleware (per-IP sliding window) 17. OpenAPI docs cleanup (auth + rate limiting descriptions) 18. Benchmarking suite (decomposition, multi-path, recomposition, e2e) 19. Plugin system (head registry for custom heads) 427 tests passing, 0 ruff errors, 0 mypy errors. Co-Authored-By: Nakamoto, S <defi@defi-oracle.io>
60 lines
1.8 KiB
Docker
60 lines
1.8 KiB
Docker
# ==============================================================================
|
|
# FusionAGI — Multi-stage production Dockerfile
|
|
# ==============================================================================
|
|
# Build stages:
|
|
# 1. builder — install deps + build wheel
|
|
# 2. runtime — slim image with only runtime deps
|
|
#
|
|
# Build:
|
|
# docker build -t fusionagi .
|
|
# docker build --build-arg EXTRAS="api,gpu" -t fusionagi-gpu .
|
|
#
|
|
# Run:
|
|
# docker run -p 8000:8000 fusionagi
|
|
# ==============================================================================
|
|
|
|
# ---- Stage 1: Builder ----
|
|
FROM python:3.12-slim AS builder
|
|
|
|
WORKDIR /build
|
|
|
|
# System deps for building
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends gcc && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY pyproject.toml README.md ./
|
|
COPY fusionagi/ fusionagi/
|
|
|
|
ARG EXTRAS="api"
|
|
RUN pip install --no-cache-dir --prefix=/install ".[${EXTRAS}]"
|
|
|
|
# ---- Stage 2: Runtime ----
|
|
FROM python:3.12-slim AS runtime
|
|
|
|
LABEL maintainer="FusionAGI <info@fusionagi.dev>"
|
|
LABEL org.opencontainers.image.source="https://github.com/fusionagi/fusionagi"
|
|
LABEL org.opencontainers.image.description="FusionAGI Dvādaśa — 12-headed AGI orchestration"
|
|
|
|
# Copy installed packages from builder
|
|
COPY --from=builder /install /usr/local
|
|
|
|
# Copy application code
|
|
WORKDIR /app
|
|
COPY fusionagi/ fusionagi/
|
|
|
|
# Non-root user
|
|
RUN useradd -r -s /bin/false fusionagi
|
|
USER fusionagi
|
|
|
|
# Health check
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
|
|
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/docs')" || exit 1
|
|
|
|
EXPOSE 8000
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
|
|
CMD ["python", "-m", "uvicorn", "fusionagi.api.app:app", "--host", "0.0.0.0", "--port", "8000"]
|