FROM php:8.3-fpm-alpine # Install system dependencies RUN apk add --no-cache \ imagemagick \ imagemagick-dev \ git \ curl \ oniguruma-dev \ libpng-dev \ libjpeg-turbo-dev \ libxml2-dev \ zip \ unzip # Install PHP extensions RUN docker-php-ext-install \ pdo_pgsql \ gd \ intl \ mbregex \ xml # Install Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Create app directory WORKDIR /app # Copy entrypoint script COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh # Set up Symfony directory structure RUN mkdir -p \ src/UI/{API,Console}/{Controller,Request,Response,Command} \ src/Logic/{Manager,Calculator,Model,Provider,Processor,Shared} \ src/Data/{Entity,Repository} \ public/files \ var/cache \ var/log \ var/sessions # Install Symfony runtime and framework dependencies RUN composer config allow-plugins true RUN composer require symfony/framework-bundle symfony/asset symfony/mime symfony/console \ symfony/dotenv symfony/flex symfony/runtime symfony/twig-bundle symfony/validator \ symfony/doctrine-messenger symfony/messenger twig symfony/mercure symfony/routing \ symfony/serializer php-http/discovery EXPOSE 9000 ENTRYPOINT ["docker-entrypoint.sh"] CMD ["php-fpm", "-F"]