tulik / symfony-4-docker-env

Docker Environment for Symfony. PHP-FPM, NGINX SSL Proxy, MySQL, LEMP
MIT License
118 stars 60 forks source link
blackfire blackfire-profiler docker docker-compose kubernetes mysql nginx nginx-php-fpm nginx-proxy php7 phpstorm postgres postgresql symfony4 travis xdebug

Symfony 4 Docker

Minimal Runtime Environment Build Status symfony 4 docker Scrutinizer Code Quality

Table of content

  1. See it working! Deployed with Travis and Kubernetes
  2. Environment architecture
  3. Quick start
  4. Configure Xdebug
  5. Blackfire profiler
  6. Directory structure

See it working!

Deployed with Travis and Kubernetes

Environment architecture

Now it has mocked support for MySQL databases.

Quick start

$ git clone https://github.com/tulik/symfony-4-docker-runtime-env.git
$ cd symfony-4-docker-runtime-env
$ docker-compose up

Wait for containers to start, then to http://localhost

Blackfire.io

Configure Xdebug

If you use another IDE than PHPStorm, go to the remote debugging section of Xdebug documentation.

For a better integration of Docker to PHPStorm, use the documentation.

  1. Edit docker-compose file docker-compose.yml edit/adjust the configuration as needed for XDEBUG_CONFIG AND PHP_IDE_CONFIG environment variables.

  2. If needed add a server for PHP as explained @see Add a debug server section.

Thank to @woprrr for contribution on Xdebug.

Blackfire profiler

Blackfire.io is continuous PHP Performance Testing.

Blackfire.io

Register your trial, be able to profile both in development and with a paid subscription in production too! Don't forget to get your Blackfire Companion.

Directory structure

symfony-4-docker-runtime-env
├── documentation
│   └── images
├── h2-proxy
│   └── conf.d
├── helm
│   └── symfony
│       ├── charts
│       └── templates
└── symfony
    ├── bin
    ├── config
    │   ├── packages
    │   │   ├── dev
    │   │   ├── prod
    │   │   └── test
    │   └── routes
    ├── docker
    │   ├── nginx
    │   │   └── conf.d
    │   └── php
    ├── public
    └── src
        ├── Controller
        ├── Entity
        ├── Migrations
        └── Repository


Copyright Note: Substantial portions of the solution was introduced by Kévin Dunglas.