services: php: container_name: php build: context: . target: open_marketplace_php_dev depends_on: - migrations environment: - APP_ENV=dev - APP_DEBUG=1 - APP_SECRET=EDITME - DATABASE_URL=mysql://open_marketplace:${MYSQL_PASSWORD:-nopassword}@mysql/open_marketplace - MAILER_URL=smtp://mailhog:1025 - PHP_DATE_TIMEZONE=${PHP_DATE_TIMEZONE:-UTC} volumes: - .:/srv/open_marketplace:rw,cached # if you develop on Linux, you may use a bind-mounted host directory instead - ./var:/srv/open_marketplace/var:rw # - ./public:/srv/open_marketplace/public:rw,delegated # if you develop on Linux, you may use a bind-mounted host directory instead # - ./public/media:/srv/open_marketplace/public/media:rw - public-media:/srv/open_marketplace/public/media:rw - fixture-images:/srv/open_marketplace/var/fixtures migrations: container_name: migrations build: context: . target: open_marketplace_migrations_dev depends_on: - mysql environment: - APP_ENV=dev - APP_DEBUG=1 - APP_SECRET=EDITME - DATABASE_URL=mysql://open_marketplace:${MYSQL_PASSWORD:-nopassword}@mysql/open_marketplace - LOAD_FIXTURES=1 - PHP_DATE_TIMEZONE=${PHP_DATE_TIMEZONE:-UTC} volumes: - public-media:/srv/open_marketplace/public/media:rw - fixture-images:/srv/open_marketplace/var/fixtures mysql: container_name: mysql image: mysql:5.7 # Sylius is fully working on mysql 8.0 version platform: linux/amd64 environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-nopassword} - MYSQL_DATABASE=open_marketplace - MYSQL_USER=open_marketplace - MYSQL_PASSWORD=${MYSQL_PASSWORD:-nopassword} volumes: - mysql-data:/var/lib/mysql:rw # you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data! # - ./docker/mysql/data:/var/lib/mysql:rw,delegated ports: - "${MYSQL_PORT:-3306}:3306" cap_add: - SYS_NICE # prevent "mbind: Operation not permitted" errors node: container_name: node build: context: . target: open_marketplace_node command: ["yarn", "watch"] depends_on: - php environment: - GULP_ENV=dev - PHP_HOST=php - PHP_PORT=9000 volumes: - .:/srv/open_marketplace:rw,cached - ./public:/srv/open_marketplace/public:rw,delegated ports: - "${NODE_PORT:-35729}:35729" nginx: container_name: nginx build: context: . target: open_marketplace_nginx depends_on: - php - node # to ensure correct build order volumes: - ./public:/srv/open_marketplace/public:ro # if you develop on Linux, you may use a bind-mounted host directory instead # - ./public/media:/srv/open_marketplace/public/media:ro - public-media:/srv/open_marketplace/public/media:ro,nocopy ports: - "${HTTP_PORT:-80}:80" mailhog: # do not use in production! image: mailhog/mailhog:latest environment: - MH_STORAGE=maildir # volumes: # - ./docker/mailhog/maildir:/maildir:rw,delegated ports: - "${MAILHOG_PORT:-8025}:8025" volumes: mysql-data: public-media: fixture-images: