Configure your Symfony 5 local dev env with Docker
Configuring our dev env for Symfony 5 with Docker.
Requirements
- Docker
Installation
-
Create a folder where you're going to keep your project
mkdir ~/test -
Move inside of the folder
cd ~/test -
Create a docker-compose.yml file in that folder with this content
version: "3.4" services: php: image: webcu/symfony-installer:latest restart: always working_dir: /symfony volumes: - .:/symfony command: tail -f /dev/null ports: - 8000:8000 environment: XDEBUG_HOST_SETTING: host.docker.internal PHP_IDE_CONFIG: "serverName=localhost" -
Start the container
docker-compose up -d -
Enter the container
docker-compose exec php bash -
Create a new symfony project
symfony new test-project-
If you want to avoid the warning message about your git identity, you can add your git config to your container adding this line to your docker-compose.yml file:
volumes: ... # To add your git info to the container - ~/.gitconfig:/etc/gitconfigIf you added the .gitconfig file after have created the container don't forget to recreate it ;)
# Exit your container root@4725a7a23464:/symfony exit # Recreate your container docker-compose up -d --force-recreate # Enter the new container docker-compose exec php bash # Create a new Symfony project symfony new test-project
-
-
Start the Built-in web server of PHP
php -S 0.0.0.0:8000 -t test-project/public-
php -S 0.0.0.0:8000
This allows that the web server can be accessed from outside the container.
-
-t test-project/public
Specifies the Document root of the server.
For more information about the Built-in web server of PHP check its documentation:
-
-
Enjoy your new and shiny Symfony project visiting:
-
Now start writing your amazing application!
Docker Image details
To simplify the process of the creation of the Dev Env for Symfony using Docker I created an image based on the Official PHP images that include some functionalities/extensions needed/recommended for Symfony 5. Those functionalities/extensions are:
- OPCache
- Xdebug
- Intl
- Composer
- Symfony Installer
You can find this image in Docker Hub. To use it you need to reference it in your docker-compose.yml file
services:
php:
image: webcu/symfony-installer
...
DockerFile tips related to PHP
-
Use the official PHP images
There is a great team behind them to make those images the best possible.
-
Use the helper scripts:
docker-php-ext-configure,docker-php-ext-install, docker-php-ext-enable. They are available in the Official PHP images to install more easily the PHP extensions. -
To add a PHP development config add this line to your Dockerfile
... RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" ... -
Add your custom php ini config
Configure the php.ini options according to your needs.
-
Check this project if you don't want to deal directly with the installation of the php extensions: