FROM php:8.3-fpm-bookworm

ARG UID=1000
ARG GID=1000

ENV APP_USER=laravel \
    APP_GROUP=laravel \
    COMPOSER_CACHE_DIR=/tmp/composer-cache

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        bash \
        default-mysql-client \
        git \
        libicu-dev \
        libonig-dev \
        libsqlite3-dev \
        libzip-dev \
        unzip \
        zip \
    && docker-php-ext-install \
        bcmath \
        intl \
        pcntl \
        pdo_mysql \
        pdo_sqlite \
        zip \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

RUN groupadd --gid "${GID}" "${APP_GROUP}" \
    && useradd --uid "${UID}" --gid "${GID}" --create-home --shell /bin/bash "${APP_USER}" \
    && mkdir -p /var/www/html "${COMPOSER_CACHE_DIR}" \
    && chown -R "${APP_USER}:${APP_GROUP}" /var/www/html "${COMPOSER_CACHE_DIR}" \
    && sed -ri "s/^user = .*/user = ${APP_USER}/; s/^group = .*/group = ${APP_GROUP}/" /usr/local/etc/php-fpm.d/www.conf

WORKDIR /var/www/html

COPY docker-local/php/entrypoint /usr/local/bin/laravel-entrypoint
RUN chmod +x /usr/local/bin/laravel-entrypoint

ENTRYPOINT ["laravel-entrypoint"]
CMD ["php-fpm"]
