Outils pour utilisateurs

Outils du site


docker:symfony

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
docker:symfony [2020/11/30 05:58]
marclebrun [Créer un projet Symfony]
— (Version actuelle)
Ligne 1: Ligne 1:
-====== Composer une Stack pour un projet Symfony ====== 
- 
-Sources: 
-  * [[https://​blog.dev-web.io/​2019/​02/​10/​utiliser-symfony-dans-docker/​|Utiliser Symfony dans docker]] 
- 
-===== Création de la stack ===== 
- 
-Créer un fichier **docker-compose.yml** dans un nouveau dossier : 
- 
-<code yaml /​chemin/​du/​projet/​docker-compose.yml>​ 
-version: '​3'​ 
-services: 
-    db: 
-        # image officielle de MySQL 5 
-        image: mysql:5 
-        # mapper le port 3306 de l'​image vers un port local 
-        ports: 
-            - "​3307:​3306"​ 
-        # utilisateur root sans mot de passe 
-        environment:​ 
-            MYSQL_ALLOW_EMPTY_PASSWORD:​ '​yes'​ 
-            MYSQL_USER: '​root'​ 
-        # mapper le dossier /​var/​lib/​mysql de l'​image vers un dossier local 
-        volumes: 
-            - /​chemin/​du/​projet/​mysql-data:/​var/​lib/​mysql 
-    maildev: 
-        image: djfarrelly/​maildev 
-        # mapper le port 80 de l'​image vers un port local 
-        ports: 
-            - "​8002:​80"​ 
-    phpmyadmin: 
-        image: phpmyadmin/​phpmyadmin 
-        # mapper le port 80 de l'​image vers un port local 
-        ports: 
-            - "​8080:​80"​ 
-        # l'​image '​db'​ doit être lancée avant celle-ci 
-        depends_on: 
-            - db 
-        # spécifier que PhpMyAdmin se connecte le serveur dans l'​image '​db'​ 
-        environment:​ 
-            PMA_HOST: db 
-    php72: 
-        # on va construire une image dans le dossier php72 
-        build: php72 
-        # mapper le port 80 de l'​image vers un port local 
-        ports: 
-            - "​8000:​80"​ 
-        volumes: 
-            - /​chemin/​du/​projet/​vhosts:/​etc/​apache2/​sites-enabled 
-            - /​chemin/​du/​projet/​www:/​var/​www 
-</​code>​ 
- 
-===== Configuration de Apache et PHP ===== 
- 
-  * Créer un dossier **./www** 
-  * Créer un dossier **./php72** 
-  * Créer un fichier **./​php72/​php.ini** 
-    * Le contenu peut être copié depuis [[https://​github.com/​php/​php-src/​blob/​master/​php.ini-production|cette page]] 
-    * Click sur bouton **Raw** puis copier/​coller toute la page 
-  * Créer un dossier **./​vhosts** 
-  * Créer un fichier **./​vhosts/​vhost.conf** 
- 
-<code apache vhost.conf>​ 
-<​VirtualHost *:80> 
-    ServerName localhost 
- 
-    DocumentRoot /var/www 
-    <​Directory /​var/​www>​ 
-        AllowOverride All 
-        Order Allow,Deny 
-        Allow from All 
-    </​Directory>​ 
- 
-    ErrorLog /​var/​log/​apache2/​error.log 
-    CustomLog /​var/​log/​apache2/​access.log combined 
-</​VirtualHost>​ 
-</​code>​ 
- 
-  * Créer un fichier **./​php72/​Dockerfile** 
- 
-<code text Dockerfile>​ 
-FROM php:​7.2-apache 
- 
-RUN echo "​ServerName localhost"​ >> /​etc/​apache2/​apache2.conf 
- 
-RUN apt-get update && \ 
-    apt-get install -y --no-install-recommends locales apt-utils git; 
- 
-RUN echo "​en_US.UTF-8 UTF-8" > /​etc/​locale.gen && \ 
-    echo "​fr_FR.UTF-8 UTF-8" >> /​etc/​locale.gen && \ 
-    locale-gen 
- 
-COPY php.ini /​usr/​local/​etc/​php/​php.ini 
- 
-RUN curl -sSk https://​getcomposer.org/​installer | php -- --disable-tls && \ 
-    mv composer.phar /​usr/​local/​bin/​composer 
- 
-# Créer user "​marc:​marc"​ avec même uid et gid que sur l'​hôte 
-RUN addgroup --system marc --gid 1000 && adduser --system marc --uid 1000 --ingroup marc 
- 
-WORKDIR /var/www/ 
-</​code>​ 
- 
-Au final, on doit obtenir l'​arborescence suivante : 
- 
-<​code>​ 
-/​chemin/​du/​projet/​ 
- ​├── docker-compose.yml 
- ​├── mysql-data 
- ​│   └── ... divers fichiers de mysql ... 
- ​├── php72 
- ​│   ├── Dockerfile 
- ​│   └── php.ini 
- ​├── vhosts 
- ​│   └── vhost.conf 
- ​└── www 
-     ​└── ... fichiers du projet php ... 
-</​code>​ 
- 
-===== Construction de la stack ===== 
- 
-<code bash> 
-docker-compose build 
-</​code>​ 
- 
-===== Lancer/​Arrêter la stack ===== 
- 
-Lancer la stack : 
- 
-<code bash> 
-docker-compose up 
-</​code>​ 
- 
-Les messages provenant des différentes images en cours de fonctionnement sont affichées 
-dans le terminal. Pour tout fermer, taper **Ctrl+C**. 
- 
-  * [[http://​localhost:​8000|localhost:​8000 : Le projet Symfony]] 
-  * [[http://​localhost:​8080|localhost:​8080 : PhpMyAdmin]] (login **root** sans mot de passe) 
-  * [[http://​localhost:​8002|localhost:​8002 : MailDev]] 
- 
-> Pour lancer la stack en mode **détaché**,​ ajouter l'​option **-d** 
-> ''​ docker-compose up -d ''​ 
-> et pour l'​arrêter : 
-> ''​ docker-compose down ''​ 
- 
-===== Créer un projet Symfony 5 ===== 
- 
-:!: **À TESTER** :!: 
- 
-La stack doit être lancée. 
- 
-Se connecter au bash du conteneur PHP : 
- 
-<code bash> 
-docker exec -u 1000 -it $(docker ps -aqf "​name=php72"​) bash; 
-</​code>​ 
- 
-Créer le projet avec Composer : 
- 
-<code bash> 
-composer create-project symfony/​website-skeleton mon_projet 
-</​code>​ 
- 
-<code bash> 
-composer require symfony/​apache-pack 
-</​code>​ 
  
docker/symfony.1606715911.txt.gz · Dernière modification: 2020/11/30 05:58 (modification externe)