FROM php:8.4-fpm
WORKDIR /var/www/html
COPY . .
RUN apt-get update -y \
    && apt-get install -y \
        libzip-dev \
        libicu-dev \
        libpq-dev \
        zlib1g-dev \
        libonig-dev \
        libsodium-dev \
        libpng-dev \
        libjpeg62-turbo-dev \
        libfreetype6-dev \
        curl \
        libxml2-dev \
        wget \
        vim \
        nginx \
    && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) \
        zip \
        mbstring \
        pdo \
        pdo_mysql \
        pdo_pgsql \
        opcache \
        sodium \
        gd \
        xml \
        pcntl \
        bcmath \
        sockets

ARG PIE_VERSION=1.1.0

RUN curl -fsSL -o /usr/local/bin/pie \
      "https://github.com/php/pie/releases/download/${PIE_VERSION}/pie.phar" \
    && chmod +x /usr/local/bin/pie

RUN pie install phpredis/phpredis \
    && docker-php-ext-enable redis

RUN pie install mongodb/mongodb-extension:^1.21 \
    && docker-php-ext-enable mongodb
COPY .docker/custom-php.ini /usr/local/etc/php/conf.d/custom-php.ini
COPY .docker/www.conf /usr/local/etc/php-fpm.d/www.conf
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
COPY .docker/nginx.conf /etc/nginx/nginx.conf
RUN echo "* * * * * php /var/www/html/artisan schedule:run" > /etc/crontab
COPY .docker/docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
RUN composer install --no-dev --optimize-autoloader --prefer-dist
RUN mkdir -p /var/www/html/storage/framework/cache/data
RUN mkdir -p /var/www/html/storage/framework/sessions
RUN mkdir -p /var/www/html/storage/framework/views
RUN chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache
RUN chown -R www-data:www-data /var/www/html
EXPOSE 80
CMD ["/docker-entrypoint.sh"]
