Since Sylius-Standard v1.3.0 we are supporting Docker out of the box. Please use a default configuration for your end projects.
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.
Because 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
| 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=yespleasePlease 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:installwhen required - Run
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)