FROM php:8.3-fpm-alpine AS app
RUN apk add --no-cache git unzip icu-dev oniguruma-dev libzip-dev libpng-dev libjpeg-turbo-dev freetype-dev icu-libs libpng libjpeg-turbo freetype \
 && docker-php-ext-configure gd --with-freetype --with-jpeg \
 && docker-php-ext-install -j"$(nproc)" gd pdo_mysql mbstring intl bcmath pcntl opcache zip \
 && cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
COPY composer.json composer.lock* ./
RUN composer install --no-dev --no-interaction --prefer-dist --no-progress --no-scripts --optimize-autoloader
COPY . .
RUN composer dump-autoload --no-dev --optimize && php artisan package:discover --ansi && php artisan infotics:build-assets
RUN mkdir -p storage/framework/cache storage/framework/sessions storage/framework/views storage/logs bootstrap/cache storage/app/private \
 && chown -R www-data:www-data storage bootstrap/cache \
 && chmod -R 775 storage bootstrap/cache
COPY infra/docker/php-opcache.ini /usr/local/etc/php/conf.d/opcache.ini
COPY infra/docker/php-uploads.ini /usr/local/etc/php/conf.d/uploads.ini
USER www-data
EXPOSE 9000
HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD php -r 'exit(file_exists("/var/www/html/public/index.php") ? 0 : 1);'
CMD ["php-fpm", "-F"]
