🐳 Docker + PHP 8.2 + MySQL + Nginx + Symfony 6.2 Boilerplate
Description
This is a complete stack for running Symfony 6.2 into Docker containers using docker-compose tool.
It is composed by 4 containers:
nginx
, acting as the webserver.php
, the PHP-FPM container with the 8.2 version of PHP.db
which is the MySQL database container with a MySQL 8.0 image.
Installation
-
😀 Clone this repo. -
If you are working with Docker Desktop for Mac, ensure you have enabled
VirtioFS
for your sharing implementation.VirtioFS
brings improved I/O performance for operations on bind mounts. Enabling VirtioFS will automatically enable Virtualization framework. -
Create the file
./.docker/.env.nginx.local
using./.docker/.env.nginx
as template. The value of the variableNGINX_BACKEND_DOMAIN
is theserver_name
used in NGINX. -
Go inside folder
./docker
and rundocker compose up -d
to start containers. -
You should work inside the
php
container. This project is configured to work with Remote Container extension for Visual Studio Code, so you could runReopen in container
command after open the project. -
Inside the
php
container, runcomposer install
to install dependencies from/var/www/symfony
folder. -
Use the following value for the DATABASE_URL environment variable:
DATABASE_URL=mysql://app_user:helloworld@db:3306/app_db?serverVersion=8.0.33
You could change the name, user and password of the database in the env
file at the root of the project.
To learn more
I have recorded a Youtube session explaining the different parts of this project. You could see it here: