# syntax=docker/dockerfile:1
# AI Data Aggregation — Symfony backend on FrankenPHP (single-container runtime).
FROM dunglas/frankenphp:1-php8.3 AS base

# Listen on plain HTTP :8000 inside the compose network (no TLS for the PoC).
ENV SERVER_NAME=:8000 \
    APP_ENV=prod \
    APP_DEBUG=0

WORKDIR /app

# PHP extensions: gd (with WebP), intl, zip, pdo_pgsql, opcache, pcntl (worker).
RUN install-php-extensions gd intl zip pdo_pgsql opcache pcntl

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

# Install dependencies first (better layer caching).
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --no-interaction --prefer-dist --no-progress

# Application code.
COPY . .
RUN composer dump-autoload --no-dev --optimize --classmap-authoritative \
    && mkdir -p var/cache var/log var/data var/images var/mock-ergonode var/secrets \
    && chown -R www-data:www-data var

COPY docker/backend-entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh

EXPOSE 8000
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["frankenphp", "run"]
