Symfony 5.2 & PHP 8 sous Docker en 5 minutes

🅳🅰🅼🅸🅴🅽
3 min readNov 12, 2020

--

Docker / Symfony 5.2 / PHP 8

Prérequis

Etape 1: Création de l’arborescence du projet

L’idée est de séparer la partie “infrastructure” que représente le sous ensemble (Nginx, PHP8 et Docker) de la partie applicative qui est Symfony.

On commence par créer quelques répertoires dont on va avoir besoin pour notre projet.

mkdir ~/demo-symfony-php8 && cd ~/demo-symfony-php8mkdir infra && mkdir infra/php && mkdir infra/nginx && mkdir infra/logs && mkdir infra/logs/nginxmkdir symfony

Si tout se passe bien, à la fin du tuto vous devriez vous retrouver avec l’arborescence suivante

Arborescence du projet à la fin du tutoriel

Etape 2: PHP 8

On se place dans le répertoire infra/php pour créer le Dockerfile.
Il a pour but de faire tourner un container sur PHP8 en RC3, la toute dernière version à ce jour.
On y ajoute composer, qui va nous permettre de récupérer Symfony plus tard.

cd ~/demo-symfony-php8/infra/php 
vim Dockerfile

Contenu du Dockerfile

Etape 3: Nginx

On se place ensuite dans le repertoire infra/nginx pour y configurer notre serveur à l’aide des 2 fichiers:

Le Dockerfile pour faire tourner Nginx sur sa version Alpine

cd ~/demo-symfony-php8/infra/nginx
vim Dockerfile

Le fichier nginx.conf pour configurer notre serveur Nginx

vim nginx.conf

Etape 4: Création du docker-compose et du .env

On se place dans le répertoire “infra” et on créer le fichier .env pour ajouter quelques variables d’environnement, que l’on utilisera à travers le docker-compose (principalement pour configurer Symfony ).

cd ~/demo-symfony-php8/infra
vim .env

On créer ensuite le fichier docker-compose.yml, pour réunir et configurer nos 2 containers.

vim docker-compose.yml
docker-compose.yml

A ce stade, il ne nous reste plus qu’à construire nos images et tout allumer en executant la commande suivante. Cette commande doit être exécutée dans le repertoire où se trouve le fichier docker-compose.yml

docker-compose up -d --build
docker-compose up -d

Si tout se passe bien, à la fin vous devriez avoir 2 containers en cours d’execution

docker-compose ps

Etape 5: Symfony 5

Récupérerons maintenant les sources du projet Symfony.
Souvenez-vous, dans la configuration du container php du fichier docker-compose.yml, nous avons partagé le volume pour que le repertoire symfony de notre projet pointe dans /var/www du container php.

Composer étant installé sur ce container, il ne reste plus qu’à lancer la commande suivante à l’interieur du container PHP pour installer Symfony dans sa version 5.2 supportant PHP8.
Ici on installe la version light de Symfony, correspondant plutôt à une application console ou API.
Attention, cette version est en développement, elle n’est pas du tout faite pour être utilisé pour démarrer un projet.

docker-compose run php composer create-project symfony/skeleton:"5.2.x@dev" .
docker-compose run php bin/console about

And voila ! En ouvrant votre navigateur sur http://localhost/ vous devriez voir la homepage Symfony

Les sources du projet https://github.com/drochette/symfony5.2-php8

--

--