« Symfony Docker » : différence entre les versions

Ligne 674 : Ligne 674 :
Ce service Composer optionnel pour vous donner une '''alternative plus propre et isolée''' pour exécuter les commandes Composer, plutôt que de les exécuter directement dans le container PHP-FPM. Voici les raisons détaillées :
Ce service Composer optionnel pour vous donner une '''alternative plus propre et isolée''' pour exécuter les commandes Composer, plutôt que de les exécuter directement dans le container PHP-FPM. Voici les raisons détaillées :


-----


==== 1. '''Séparation des responsabilités''' ====
==== 1. '''Séparation des responsabilités''' ====
Ligne 685 : Ligne 683 :
* '''Solution''' :<br />
* '''Solution''' :<br />
Un service dédié à Composer est éphémère (''run-and-die'') et ne pollue pas votre environnement PHP-FPM.
Un service dédié à Composer est éphémère (''run-and-die'') et ne pollue pas votre environnement PHP-FPM.
-----


==== 2. '''Avantages concrets''' ====
==== 2. '''Avantages concrets''' ====
Ligne 704 : Ligne 699 :


* Comme vous utilisez des bundles locaux (via <code>&quot;type&quot;: &quot;path&quot;</code>), le service Composer monte à la fois <code>./app</code> et <code>./Bundles</code>, garantissant que les symlinks fonctionnent correctement.
* Comme vous utilisez des bundles locaux (via <code>&quot;type&quot;: &quot;path&quot;</code>), le service Composer monte à la fois <code>./app</code> et <code>./Bundles</code>, garantissant que les symlinks fonctionnent correctement.
-----


==== 3. '''Comment l’utiliser ?''' ====
==== 3. '''Comment l’utiliser ?''' ====
Ligne 722 : Ligne 714 :
* <code>--rm</code> : Détruit le container après l’exécution (pour éviter l’accumulation de containers stoppés).
* <code>--rm</code> : Détruit le container après l’exécution (pour éviter l’accumulation de containers stoppés).
* Le <code>working_dir: /var/www</code> fait que les commandes s’exécutent directement dans le dossier du projet.
* Le <code>working_dir: /var/www</code> fait que les commandes s’exécutent directement dans le dossier du projet.
-----


==== 4. '''Alternative : Composer dans le container PHP''' ====
==== 4. '''Alternative : Composer dans le container PHP''' ====
Ligne 730 : Ligne 719 :
Si vous préférez ne pas utiliser ce service optionnel, vous pouvez : 1. Utiliser le Composer inclus dans le container PHP :<br />
Si vous préférez ne pas utiliser ce service optionnel, vous pouvez : 1. Utiliser le Composer inclus dans le container PHP :<br />
<code>bash    docker-compose exec php composer install</code> 2. Ou via le script <code>entrypoint.sh</code> (qui vérifie déjà si <code>vendor/</code> existe).
<code>bash    docker-compose exec php composer install</code> 2. Ou via le script <code>entrypoint.sh</code> (qui vérifie déjà si <code>vendor/</code> existe).
-----


==== 5. '''Pourquoi “optionnel” ?''' ====
==== 5. '''Pourquoi “optionnel” ?''' ====
Ligne 738 : Ligne 724 :
* Beaucoup de développeurs préfèrent exécuter Composer '''en dehors de Docker''' (sur leur machine host) pour des raisons de performance (cache Composer partagé, pas de overhead Docker).
* Beaucoup de développeurs préfèrent exécuter Composer '''en dehors de Docker''' (sur leur machine host) pour des raisons de performance (cache Composer partagé, pas de overhead Docker).
* Mais dans votre cas, avec des bundles locaux et une configuration spécifique, avoir un service dédié est plus fiable.
* Mais dans votre cas, avec des bundles locaux et une configuration spécifique, avoir un service dédié est plus fiable.
-----


=== En résumé : ===
=== En résumé : ===