FROM composer:2 AS vendor

WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install \
    --no-dev \
    --no-interaction \
    --no-plugins \
    --no-scripts \
    --prefer-dist \
    --optimize-autoloader \
    --ignore-platform-req=php

FROM php:8.2-fpm-alpine AS app

RUN apk add --no-cache \
    icu-libs \
    libpng \
    libjpeg-turbo \
    freetype \
    oniguruma \
    && apk add --no-cache --virtual .build-deps \
    icu-dev \
    libpng-dev \
    libjpeg-turbo-dev \
    freetype-dev \
    oniguruma-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) \
        pdo_mysql \
        mbstring \
        bcmath \
        opcache \
        intl \
        exif \
        gd \
    && apk del .build-deps

COPY docker/opcache.ini /usr/local/etc/php/conf.d/opcache.ini

COPY --from=vendor /app/vendor /var/www/html/vendor
COPY . /var/www/html

RUN rm -rf /var/www/html/docker /var/www/html/.dockerignore /var/www/html/Dockerfile /var/www/html/bootstrap/cache/*.php \
    && chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache \
    && chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache

COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

FROM nginx:alpine AS nginx

COPY conf/nginx/default.conf /etc/nginx/conf.d/default.conf
