# Image de production pour AKS : PHP-FPM 8.4 + Nginx (via supervisor)
# Build des assets fait en étape Node, puis copie dans l'image PHP.

# --- Étape 1 : build des assets front (Tailwind v3 / Vite 6) ---
FROM node:20-alpine AS assets
WORKDIR /app
COPY package*.json ./
RUN npm install --no-audit --no-fund
COPY vite.config.js tailwind.config.js postcss.config.js ./
COPY resources ./resources
COPY public ./public
RUN npm run build

# --- Étape 2 : dépendances PHP (Composer) ---
FROM composer:2 AS vendor
WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --prefer-dist --optimize-autoloader --ignore-platform-reqs

# --- Étape 3 : image finale ---
FROM php:8.4-fpm-alpine

# Dépendances système + extensions PHP (pdo_mysql, gd/zip/mbstring pour dompdf, opcache, bcmath)
RUN apk add --no-cache nginx supervisor libpng libjpeg-turbo freetype libzip oniguruma \
 && apk add --no-cache --virtual .build-deps libpng-dev libjpeg-turbo-dev freetype-dev libzip-dev oniguruma-dev \
 && docker-php-ext-configure gd --with-freetype --with-jpeg \
 && docker-php-ext-install -j$(nproc) pdo pdo_mysql bcmath opcache gd zip mbstring exif \
 && apk del .build-deps

WORKDIR /var/www/html
COPY . .
COPY --from=vendor /app/vendor ./vendor
COPY --from=assets /app/public/build ./public/build

# Config Nginx + Supervisor + entrypoint
COPY deploy/nginx.conf /etc/nginx/nginx.conf
COPY deploy/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY deploy/docker-entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh \
 && chown -R www-data:www-data storage bootstrap/cache

EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
