This is a complete stack for running Symfony 4 (latest version: Flex) into Docker containers using docker-compose tool.
-
Clone this repository:
$ git clone https://github.com/eko/docker-symfony.git
-
Create a
.env
from the.env.dist
file. Adapt it according to your symfony applicationcp .env.dist .env
-
Put your Symfony application into
symfony
folder and do not forget to addsymfony.localhost
in your/etc/hosts
file. -
Make sure you adjust
DATABASE_URL
insymfony/.env
file. -
Run containers
$ docker-compose up -d
You are done, you can visit your Symfony application on the following URL: http://symfony.localhost
.
Note : you can rebuild all Docker images by running:
$ docker-compose build
Here are the docker-compose
built images:
db
: This is the MySQL database container (can be changed to postgresql or whatever indocker-compose.yml
file),php
: This is the PHP-FPM container including the application volume mounted on,nginx
: This is the Nginx webserver container in which php volumes are mounted too,
This results in the following running containers:
> $ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
dockersymfony_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
dockersymfony_nginx_1 nginx Up 443/tcp, 0.0.0.0:80->80/tcp
dockersymfony_php_1 php-fpm7 -F Up 0.0.0.0:9000->9000/tcp
You can access Nginx and Symfony application logs in the following directories on your host machine:
logs/nginx
logs/symfony
To use xdebug change the line "docker.host:127.0.0.1"
in docker-compose.yml and replace 127.0.0.1 with your machine ip addres.
If your IDE default port is not set to 5902 you should do that, too.
Note: xdebug is disabled by default. In order to enable it, you have uncomment ADD xdebug.ini /etc/php7/conf.d/
in php-fpm/Dockerfile
file.
You are free to use the code in this repository under the terms of the 0-clause BSD license. LICENSE contains a copy of this license.