Ctrl K
ComunidadGuías…

Dockerfile

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
FROM node:22-bookworm AS frontend-build

WORKDIR /build

COPY package.json package-lock.json nx.json tsconfig.base.json ./
COPY frontend ./frontend
RUN npm ci

RUN npm run build


FROM python:3.12-slim AS runtime

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    API_HOST=0.0.0.0 \
    API_PORT=8000 \
    MCP_ENABLED=true

WORKDIR /app

RUN apt-get update \
    && apt-get install -y --no-install-recommends nginx curl tini git \
    && rm -rf /var/lib/apt/lists/*

COPY api/requirements.txt /tmp/requirements.txt
RUN pip install --no-cache-dir -r /tmp/requirements.txt

COPY api ./api
COPY importer ./importer
COPY migrations ./migrations
COPY docker ./docker
COPY schema.sql server.py VERSION ./
COPY --from=frontend-build /build/frontend/dist ./frontend/dist

RUN rm -f /etc/nginx/sites-enabled/default /etc/nginx/conf.d/default.conf \
    && mkdir -p /usr/share/nginx/html /var/log/nginx /var/lib/nginx /run \
    && cp -r /app/frontend/dist/. /usr/share/nginx/html/ \
    && chmod +x /app/docker/entrypoint.sh

EXPOSE 8080 8000

HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=5 \
  CMD curl -fsS http://127.0.0.1:8000/health || exit 1

ENTRYPOINT ["/usr/bin/tini", "--", "/app/docker/entrypoint.sh"]