Using Docker with Symfony ¶
Can you use Docker with Symfony? Of course! And several tools exist to help, depending on your needs.
Complete Docker Environment ¶
If you'd like a complete Docker environment (i.e. where PHP, web server, database, etc. are all in Docker), check out https://github.com/dunglas/symfony-docker.
Alternatively, you can install PHP on your local machine and use the symfony binary Docker integration. In both cases, you can take advantage of automatic Docker configuration from Symfony Flex.
Flex Recipes & Docker Configuration ¶
The Flex recipe for some packages also include Docker configuration.
For example, when you run composer require doctrine
(to get symfony/orm-pack
),
your docker-compose.yml
file will automatically be updated to include a
database
service.
The first time you install a recipe containing Docker config, Flex will ask you
if you want to include it. Or, you can set your preference in composer.json
,
by setting the symfony.extra.docker
config to true
or false
.
Some recipes also include additions to your Dockerfile
. To get those changes,
you need to already have a Dockerfile
at the root of your app with the
following code somewhere inside:
1 2 |
###> recipes ###
###
|
The recipe will find this section and add the changes inside. If you're using https://github.com/dunglas/symfony-docker, you'll already have this.
After installing the package, rebuild your containers by running:
1 |
$ docker-compose up --build
|
Symfony Binary Web Server and Docker Support ¶
If you're using the symfony binary web server (e.g. symfony server:start
),
then it can automatically detect your Docker services and expose them as environment
variables. See Symfony Local Web Server.