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.
git clone https://github.com/sylius/docker sylius-docker
make help
make up
make console CMD=sylius:install
Service | Port | Internal DNS | Exported |
---|---|---|---|
Sylius (HTTP) | 8000 | sylius | Yes |
MySQL | 3606 | mysql | Yes |
MailHog (SMTP) | 1025 | mailhog | No |
MailHog (HTTP) | 8025 | mailhog | Yes |
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.
For example:
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 docker/compose#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.
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 CMD
variable:
make console CMD=sylius:install
make console CMD="sylius:user:promote [email protected]"
make console CMD="sylius:theme:assets:install web --symlink --relative"
TODO
- Integrate an Asset Builder
- Run
sylius:install
when required - Run
composer create-project
when required (required for volume mount) - Predefine project and network name (currently docker-compose generates one based on the root directory name)