Bonjour à tous,
Tout est dans le titre, mon Symfony dockerisé est d'une lenteur épouvantable, pour chaque requête il y a entre 4 et 5 minutes d'attente, je n'ai jamais eu çà auparavant ...
Je suis en version 7.3.3 installée dans le dossier .\app
Je n'ai aucun problème coté Docker, container et images fonctionnent...
Le vidage de cache même en rentrant dans le bash du container ne change rien...
Peut être faut-il changer ma config Docker ? (J'ai entendu dire qu'il fallait séparer le dossier vendor, mais comment faire ?)
Merci d'avance pour votre aide précieuse
Dockerfile (dans le dossier .\php):
FROM php:8.2-apache
RUN apt-get update \
&& apt-get install -y build-essential curl zlib1g-dev g++ git libicu-dev zip libzip-dev libpng-dev libjpeg-dev libwebp-dev libfreetype6-dev \
&& docker-php-ext-install intl opcache pdo pdo_mysql \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
&& docker-php-ext-configure zip \
&& docker-php-ext-install zip
RUN docker-php-ext-configure gd --with-freetype --with-webp --with-jpeg \
&& docker-php-ext-install gd \
&& docker-php-ext-install exif
RUN a2enmod rewrite && a2enmod ssl && a2enmod socache_shmcb
WORKDIR /var/www
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN curl -sS https://get.symfony.com/cli/installer | bash
RUN mv /root/.symfony5/bin/symfony /usr/local/bin/symfony
RUN git config --global user.email "bla@bla.fr"
RUN git config --global user.name "blabla"
docker-compose.yml (dossier .)
services:
database:
container_name: database
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: jo2024
MYSQL_USER: jo2024
MYSQL_PASSWORD: jo2024
ports:
- '4306:3306'
volumes:
- ./mysql:/var/lib/mysql:rw
php:
container_name: php
build:
context: ./php
ports:
- 8080:80
volumes:
- ./apache/default.conf:/etc/apache2/sites-enabled/000-default.conf
- ./app:/var/www
depends_on:
- database
phpma:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_ARBITRARY: 1
PMA_HOST: database
PMA_USER: root
PMA_PASSWORD: secret
UPLOAD_LIMIT: 20M
ports:
- 8899:80
mailhog:
image: mailhog/mailhog
logging:
driver: 'none'
ports:
- 1025:1025 #SMTP
- 8025:8025 #Boite mail
Configuration Apache : (.\apache)
<VirtualHost *:80>
DocumentRoot /var/www/public
<Directory /var/www/public>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
J'ai trouvé une partie de la solution :
J'ai créé un .dockerignore avec la liste de dossiers suivante, si vous en connaissez d'autres merci de me les signaler :
[CODE]
/mysql/
/app/vendor/
/app/var/
/composer.phar
/build/
PHPUnit/app/phpunit.xml
/phpunit.xml[/CODE]