# Imagen de desarrollo. En produccion NO se usa Docker (ver AGENTS.md seccion 5).
# Base php:8.3-cli (AGENTS.md 5.5.1): el sistema es un pipeline por cola + cron + CLIs,
# no una web, por eso CLI y no fpm/apache. El microsite es Astro estatico y vive aparte.
FROM php:8.3-cli

# Dependencias de sistema:
#  - git, unzip: requeridos por Composer para instalar paquetes.
#  - libzip-dev: cabeceras para compilar la extension zip (la usa phpoffice/phpword para
#    leer los docx del libro, que son archivos zip por dentro; ver SPEC_BOOKKNOWLEDGE_v0.1).
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        git \
        unzip \
        libzip-dev \
        libpng-dev \
    && rm -rf /var/lib/apt/lists/*

# Extension PDO MySQL: el dominio, las metricas, la cola de jobs y los vectores viven en MariaDB
# (ver SPEC_SYSTEM_ARCHITECTURE seccion 11). MariaDB habla el protocolo de MySQL, asi que pdo_mysql
# es el driver correcto. La busqueda vectorial usa el tipo VECTOR nativo de MariaDB 11.8.
# Extension zip: phpoffice/phpword la necesita para abrir los docx (ingesta de BookKnowledge).
# Extension gd: dependencia de phpoffice/phpword 1.4 (manejo de imagenes embebidas en docx).
RUN docker-php-ext-install pdo_mysql zip gd

# Composer dentro del contenedor (AGENTS.md 5.5.4). Nunca se instala en el host.
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer

ENV COMPOSER_ALLOW_SUPERUSER=1

WORKDIR /app

CMD ["php", "-a"]
