abuzikhin / symfony-mysql-docker-skeleton
A project template for Symfony application running inside of Docker containers for convenient development.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 2
Language:Makefile
Type:template
This package is not auto-updated.
Last update: 2025-05-05 13:34:42 UTC
README
A project template in the following configuration:
- Latest stable Symfony framework (6.4 at the moment), with the ability to specify the version
- PHP 8.3
- MySQL 8+ (can be altered in the docker compose file) ?
- Separate Docker containers for Nginx, FPM, CLI and a database
- CS-Fixer and Psalm on board
The concept
- The application and docker files are located on the same level: in the
/app
and/docker
folders, respectively. This allows you to separate the symphony-application and docker environment variables, and to implement the mono repository pattern by adding new folders if necessary:/centrifugo
,s3-storage
, etc. - The
docker-compose.override.yaml
is ignored by default, so you can add your own settings without worrying about overwriting the original ones.
Quick Start
One-liner to create a new project: composer create-project abuzikhin/symfony-mysql-docker-skeleton local_project_path && make setup-configs && make init OPTIONS="webapp" && make up
Split into steps:
composer create-project abuzikhin/symfony-mysql-docker-skeleton local_project_path
make setup-configs
- create .env files for docker containersmake init OPTIONS="webapp"
- very important! Run it before making any commits to your repo. You can omit theOPTIONS
parameter if you don't need to use the webapp.make up
- start docker containers
Default ports are random (47001-47999) for every created project, so click the link generated in CLI with the output of make up
command and enjoy!
You also can set desired ports for Nginx and MySQL manually in generated /.env file (don't forget to run make restart
afterwards).
Flags
When running make init, you can use these flags:
OPTIONS="webapp"
: Includes web application features. Omit for the basicsymfony/skeleton
setup.VERSION=X.Y
: Specifies Symfony version. Defaults to the latest stable version, which is 6.4 at the moment.
Examples:
make init OPTIONS="webapp"
make init VERSION=7.2
make init VERSION=6.4
make init OPTIONS="webapp" VERSION=7.2
Configuring Xdebug settings for PhpStorm IDE
To integrate Xdebug with PhpStorm within a created project you need to do the following:
- Create a PHP interpreter in the
Settings -> Languages & Frameworks -> PHP
tab from the php-fpm container in the project; make sure that Xdebug works properly in the container. - Type the port number
9009
at the menuSettings -> Languages & Frameworks -> PHP -> Debug -> Xdebug -> Debug
. - Create a server named
Docker
in the menuSettings -> Languages & Frameworks -> PHP -> Servers
(it matches with the value of theServerName
field in the IDE config for both interpreters). - If necessary, make proper mappings in the PHP interpreter
Settings -> Languages & Frameworks -> PHP -> Path Mappings
, - Click the button
Listen for PHP debug connections
; if you have any questions, please read the documentation.