FROM php:8.3-fpm-alpine AS base

RUN apk --no-cache add \
    curl \
    git \
    linux-headers \
    icu-dev \
    zip \
    libzip-dev \
    unzip

RUN docker-php-ext-install \
    pdo \
    pdo_mysql

RUN docker-php-ext-install \
    intl \
    zip

RUN docker-php-ext-install opcache

RUN apk --no-cache add $PHPIZE_DEPS
RUN pecl install apcu \
    && docker-php-ext-enable apcu

RUN curl --remote-name https://curl.se/ca/cacert.pem \
    && mv cacert.pem /etc/ssl/certs/ca-certificates.crt

COPY --from=composer:lts /usr/bin/composer /usr/local/bin/composer

FROM base AS dev

RUN apk --no-cache add $PHPIZE_DEPS
RUN pecl install xdebug \
    && docker-php-ext-enable xdebug

COPY . /app
RUN chown -R www-data:www-data /app

USER www-data
WORKDIR /app

RUN composer install --prefer-dist --no-scripts

FROM base AS prod

COPY . /app
RUN chown -R www-data:www-data /app

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

USER www-data
WORKDIR /app

RUN composer install --prefer-dist --no-scripts --no-dev --optimize-autoloader

EXPOSE 9000

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

CMD ["php-fpm"]
