FROM php:8.4-fpm-alpine AS base

RUN apk add --no-cache \
        libzip-dev \
        zlib-dev \
        unzip \
        git \
        curl \
    && docker-php-ext-install zip pcntl \
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /var/www/html

# --- builder: composer install without dev deps, no scripts ---
FROM base AS builder
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --no-plugins --prefer-dist --no-interaction

# --- runtime: copy app code on top of vendor/ ---
FROM base AS runtime
COPY --from=builder /var/www/html/vendor /var/www/html/vendor
COPY composer.json composer.lock ./
COPY bin ./bin
COPY config ./config
COPY public ./public
COPY src ./src
COPY storage ./storage

RUN chown -R www-data:www-data /var/www/html/storage

CMD ["php-fpm"]
