68 lines
2.6 KiB
Docker
68 lines
2.6 KiB
Docker
# ---------------------------------------------------------------------------
|
|
# aetos-docs — serves both the HTML documentation portal (nginx) and the
|
|
# per-library MCP servers (FastMCP streamable-http).
|
|
# ---------------------------------------------------------------------------
|
|
|
|
FROM python:3.13-slim
|
|
|
|
LABEL maintainer="Aetoskia <dev@aetoskia.com>"
|
|
LABEL description="Unified documentation portal and MCP server for Aetoskia projects"
|
|
|
|
# --- system deps -----------------------------------------------------------
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends nginx && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# --- python deps -----------------------------------------------------------
|
|
WORKDIR /app
|
|
|
|
ARG PIP_USERNAME
|
|
ARG PIP_PASSWORD
|
|
ARG PIP_REPO_URL
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir uv && \
|
|
uv pip install --system -r requirements.txt
|
|
|
|
# --- application files -----------------------------------------------------
|
|
COPY main.py mcp_server.py config.py registry.py collect.py config.yml ./
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
RUN rm -f /etc/nginx/sites-enabled/default
|
|
|
|
# --- collected documentation tree (flat, one dir per repo) -----------------
|
|
COPY _index /usr/share/nginx/html/
|
|
COPY openapi-first /usr/share/nginx/html/openapi-first
|
|
COPY doc-forge /usr/share/nginx/html/doc-forge
|
|
COPY doc-weaver /usr/share/nginx/html/doc-weaver
|
|
COPY react-auth /usr/share/nginx/html/react-auth
|
|
COPY react-openapi /usr/share/nginx/html/react-openapi
|
|
COPY vet /usr/share/nginx/html/vet
|
|
COPY dagpipe /usr/share/nginx/html/dagpipe
|
|
COPY mail-intake /usr/share/nginx/html/mail-intake
|
|
COPY omniread /usr/share/nginx/html/omniread
|
|
COPY py-jwt /usr/share/nginx/html/py-jwt
|
|
COPY hexa /usr/share/nginx/html/hexa
|
|
COPY mongo-ops /usr/share/nginx/html/mongo-ops
|
|
COPY auth-server /usr/share/nginx/html/auth-server
|
|
COPY media-manager /usr/share/nginx/html/media-manager
|
|
COPY khata-app /usr/share/nginx/html/khata-app
|
|
COPY standards /usr/share/nginx/html/standards
|
|
|
|
# --- MCP bundles (one per repo under /app/<name>/mcp) ----------------------
|
|
COPY openapi-first/mcp /app/openapi-first/mcp
|
|
COPY doc-forge/mcp /app/doc-forge/mcp
|
|
COPY doc-weaver/mcp /app/doc-weaver/mcp
|
|
COPY react-auth/mcp /app/react-auth/mcp
|
|
COPY react-openapi/mcp /app/react-openapi/mcp
|
|
COPY vet/mcp /app/vet/mcp
|
|
COPY dagpipe/mcp /app/dagpipe/mcp
|
|
COPY mail-intake/mcp /app/mail-intake/mcp
|
|
COPY omniread/mcp /app/omniread/mcp
|
|
COPY py-jwt/mcp /app/py-jwt/mcp
|
|
COPY hexa/mcp /app/hexa/mcp
|
|
COPY mongo-ops/mcp /app/mongo-ops/mcp
|
|
COPY standards/mcp /app/standards/mcp
|
|
|
|
EXPOSE 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 9000
|
|
|
|
CMD ["python", "main.py"] |