« Symfony Docker » : différence entre les versions
| Ligne 669 : | Ligne 669 : | ||
---- | ---- | ||
=== composer:latest (optionnel) === | =---- | ||
=== '''composer:latest (optionnel)''' === | |||
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 : | ||
| Ligne 676 : | Ligne 677 : | ||
----- | ----- | ||
=== 1. '''Séparation des responsabilités''' === | ==== 1. '''Séparation des responsabilités''' ==== | ||
* '''Problème sans ce service''' :<br /> | * '''Problème sans ce service''' :<br /> | ||
| Ligne 688 : | Ligne 689 : | ||
----- | ----- | ||
=== 2. '''Avantages concrets''' === | ==== 2. '''Avantages concrets''' ==== | ||
==== a) '''Gestion propre des permissions''' ==== | ===== a) '''Gestion propre des permissions''' ===== | ||
* Les fichiers générés par Composer (vendor/, composer.lock) auront les '''mêmes permissions''' que votre utilisateur local (car le container Composer hérite des permissions du volume monté). | * Les fichiers générés par Composer (vendor/, composer.lock) auront les '''mêmes permissions''' que votre utilisateur local (car le container Composer hérite des permissions du volume monté). | ||
* Évite les problèmes classiques de permissions quand on utilise <code>composer install</code> dans le container PHP. | * Évite les problèmes classiques de permissions quand on utilise <code>composer install</code> dans le container PHP. | ||
==== b) '''Isolation des dépendances''' ==== | ===== b) '''Isolation des dépendances''' ===== | ||
* Le container PHP n’a pas besoin d’avoir Composer installé en permanence (même si mon Dockerfile l’inclut pour la flexibilité). | * Le container PHP n’a pas besoin d’avoir Composer installé en permanence (même si mon Dockerfile l’inclut pour la flexibilité). | ||
* Réduction de l’image finale en production (vous pouvez créer une image sans Composer). | * Réduction de l’image finale en production (vous pouvez créer une image sans Composer). | ||
==== c) '''Compatibilité avec les bundles locaux''' ==== | ===== c) '''Compatibilité avec les bundles locaux''' ===== | ||
* Comme vous utilisez des bundles locaux (via <code>"type": "path"</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>"type": "path"</code>), le service Composer monte à la fois <code>./app</code> et <code>./Bundles</code>, garantissant que les symlinks fonctionnent correctement. | ||
| Ligne 707 : | Ligne 708 : | ||
----- | ----- | ||
=== 3. '''Comment l’utiliser ?''' === | ==== 3. '''Comment l’utiliser ?''' ==== | ||
Exemples d’utilisation : | Exemples d’utilisation : | ||
| Ligne 725 : | Ligne 726 : | ||
----- | ----- | ||
=== 4. '''Alternative : Composer dans le container PHP''' === | ==== 4. '''Alternative : Composer dans le container PHP''' ==== | ||
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 /> | ||
| Ligne 733 : | Ligne 734 : | ||
----- | ----- | ||
=== 5. '''Pourquoi “optionnel” ?''' === | ==== 5. '''Pourquoi “optionnel” ?''' ==== | ||
* 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). | ||
| Ligne 763 : | Ligne 764 : | ||
Le choix dépend de votre workflow, d’où le caractère optionnel ! | Le choix dépend de votre workflow, d’où le caractère optionnel ! | ||
[[Catégorie:Symfony]] [[Catégorie:Docker]] | [[Catégorie:Symfony]] [[Catégorie:Docker]] | ||