FROM php:8.3-fpm-alpine AS base RUN apk add --no-cache \ nginx \ supervisor \ sqlite \ sqlite-dev \ libpng-dev \ libjpeg-turbo-dev \ freetype-dev \ oniguruma-dev \ libxml2-dev \ zip \ unzip \ curl RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) \ pdo \ pdo_sqlite \ pdo_mysql \ bcmath \ fileinfo \ mbstring \ exif \ gd \ intl \ opcache 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 --no-autoloader --no-scripts --prefer-dist COPY . . RUN composer dump-autoload --optimize --no-dev \ && mkdir -p storage/app/private/feedback-attachments \ && mkdir -p storage/framework/{cache,sessions,views} \ && mkdir -p bootstrap/cache \ && chown -R www-data:www-data storage bootstrap/cache COPY docker/nginx.conf /etc/nginx/http.d/default.conf COPY docker/supervisord.conf /etc/supervisord.conf COPY docker/php.ini /usr/local/etc/php/conf.d/99-app.ini COPY docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh EXPOSE 80 ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]