FROM dunglas/frankenphp:latest-php8.3

# Dépendances système
RUN apt-get update && apt-get install -y \
    libpq-dev \
    libzip-dev \
    unzip \
    git \
    gdal-bin \
    python3-gdal \
    && rm -rf /var/lib/apt/lists/*

# Extensions PHP
RUN install-php-extensions \
    pdo_pgsql \
    pgsql \
    redis \
    zip \
    intl \
    opcache \
    apcu

# Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /app

# Dépendances en premier (cache Docker layer)
COPY backend/composer.json backend/composer.lock ./
RUN composer install --no-dev --optimize-autoloader --no-scripts

# Code source
COPY backend/ .

# Autoload uniquement — pas de cache:warmup ici (besoin de .env.local au runtime)
RUN composer dump-autoload --optimize

COPY docker/php/Caddyfile /etc/caddy/Caddyfile

# Entrypoint : warmup au démarrage du conteneur, quand .env.local est monté
COPY docker/php/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh

ENTRYPOINT ["entrypoint.sh"]
