Sylius Docker Environment
This project is intended as boilerplate and for bootstrapping your 100% dockerized Sylius development environment. It can also be used as blueprint to use in an automated deployment pipeline achieving Dev/Prod-Parity.
The development environment consists of 3 containers, running
- nginx and php-fpm (7.1) using sylius/docker-nginx-php-fpm as base image
- Percona 5.7 as database
- MailHog for testing outgoing email
You can control, customize and extend the behaviour of this environment with
make - see
make help for details. It is built around the principles and ideas of the Docker Make Stub.
docker-compose.yml uses Compose file format 2.1 at least Docker version 1.12 ist required for this environment.
git clone https://github.com/sylius/docker sylius-docker make help make up make console CMD=sylius:install
Accessing services and ports
You can create a
docker-compose.local.yml to further extend the docker-compose configuration by overloading the existing YAML configuration. If this file exists
make up will recognize and add it as
-f docker-compose.local.yml when executing docker-compose.
version: '2' services: sylius: environments: - ADDITIONAL_ENV=yesplease
Please note array elements (ports, environments, volumes, ...) will get merged and not replaced. If you want to see this happen have a look at https://github.com/docker/compose/pull/3939 and vote for this PR.
To change the e.g. exposed ports for your local environment you have to edit
docker-compose.yml for now.
Running Symfony Console
You can always execute Symfony Console either by getting an interactive shell in the application container using
make shell. For some a more convenient way might be using
make console which is a wrapper for that.
When using the wrapper target you can pass arguments to
console by using the
make console CMD=sylius:install make console CMD="sylius:user:promote firstname.lastname@example.org" make console CMD="sylius:theme:assets:install web --symlink --relative"
Support for you Deployment Pipeline
- Integrate an Asset Builder
composer create-projectwhen required (required for volume mount)
PR #15: Predefine project and network name (currently docker-compose generates one based on the root directory name)