# PHP 8.3 requis par zipstream 3.2.0
FROM php:8.3-fpm

# OS deps + extensions pour gd/zip/intl/pdo_mysql
RUN apt-get update && apt-get install -y --no-install-recommends \
      nginx \
      git \
      unzip \
      libzip-dev \
      libicu-dev \
      libpng-dev \
      libjpeg62-turbo-dev \
      libfreetype6-dev \
      gettext-base \
    && docker-php-ext-configure gd --with-jpeg --with-freetype \
    && docker-php-ext-install -j"$(nproc)" \
         gd zip intl pdo_mysql \
    && rm -rf /var/lib/apt/lists/*

# Copier Composer depuis l'image officielle
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Dossier de travail dans le conteneur
WORKDIR /var/www/html

# Copier le projet dans le conteneur
COPY . .

# Donner les droits à l'utilisateur www-data
RUN chown -R www-data:www-data /var/www/html

# ----- Générer les .env et installer les vendors par sous-projet -----
# - copie .env.sample -> .env si .env absent
# - si composer.json existe, on fait composer install
USER www-data
RUN set -e; \
    for d in $(find . -mindepth 1 -maxdepth 1 -type d -printf '%P\n'); do \
      if [ -f "$d/.env.sample" ] && [ ! -f "$d/.env" ]; then \
        cp "$d/.env.sample" "$d/.env"; \
        echo "Env cree pour $d"; \
      fi; \
      if [ -f "$d/composer.json" ]; then \
        echo "Composer install dans $d"; \
        (cd "$d" && composer install --no-dev --prefer-dist --no-interaction --optimize-autoloader); \
      fi; \
    done
USER root
# ---------------------------------------------------------------------

# Config NGINX par défaut
#RUN rm /etc/nginx/sites-enabled/default
#COPY nginx.default.conf /etc/nginx/conf.d/default.conf
RUN rm -f /etc/nginx/sites-enabled/default /etc/nginx/conf.d/default.conf || true
COPY nginx.default.conf /etc/nginx/conf.d/default.conf

# Exposer le port 80
EXPOSE 80

# Lancer PHP-FPM et NGINX ensemble
CMD ["sh", "-c", "php-fpm -D && nginx -g 'daemon off;'"]
