FROM php:8.2-cli-alpine

# Installation des dépendances système
RUN apk add --no-cache \
    git \
    unzip \
    bash \
    curl \
    libzip-dev \
    icu-dev \
    oniguruma-dev \
    libxml2-dev \
    linux-headers

# Installation des extensions PHP pour MySQL
RUN docker-php-ext-install \
    pdo \
    pdo_mysql \
    mysqli \
    zip \
    intl \
    opcache \
    mbstring

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

# Installation de Symfony CLI
RUN curl -sS https://get.symfony.com/cli/installer | bash && \
    mv /root/.symfony5/bin/symfony /usr/local/bin/symfony

# Configuration du répertoire de travail
WORKDIR /var/www/html

# Copie des fichiers de dépendances
COPY composer.json composer.lock symfony.lock ./

# Installation des dépendances en mode dev (pour avoir les commandes make)
RUN composer install --no-scripts --prefer-dist || true

# Copie de tout le projet
COPY . .

# Génération de l'autoloader optimisé
RUN composer dump-autoload --optimize

# Permissions
RUN mkdir -p var/cache var/log && \
    chmod -R 777 var

# Exposition du port
EXPOSE 8000

# Commande par défaut (sera overridée par docker-compose)
CMD ["symfony", "server:start", "--port=8000", "--no-tls"]
