version: '3.4' services: web: image: registry.ely.by/elyby/accounts-nginx:latest build: context: . target: web args: build_env: dev depends_on: - app - emails-renderer env_file: .env volumes: - ./:/var/www/html networks: - default - nginx-proxy app: image: registry.ely.by/elyby/accounts:dev build: context: . target: app args: build_env: dev depends_on: - db - redis volumes: - ./:/var/www/html env_file: .env networks: default: aliases: - php worker: image: registry.ely.by/elyby/accounts:dev build: context: . target: app args: build_env: dev command: ['php', 'yii', 'queue/listen', '-v'] depends_on: - db - redis volumes: - ./:/var/www/html env_file: .env cron: image: registry.ely.by/elyby/accounts:dev build: context: . target: app args: build_env: dev command: ['crond', '-s', '/etc/cron.d', '-f', '-L', '/var/log/cron.log'] stop_signal: SIGKILL depends_on: - db - redis volumes: - ./:/var/www/html env_file: .env emails-renderer: image: elyby/emails-renderer:dev db: build: context: . target: db args: build_env: dev env_file: .env volumes: - ./data/mysql:/bitnami/mariadb redis: image: redis:3.0-alpine volumes: - ./data/redis:/data # If you want to use separate databases for the tests follow the next steps: # 1) Create a file common/config/config-local.php with the next containment: # # [ # 'db' => [ # 'dsn' => 'mysql:host=testdb;dbname=test', # 'username' => 'test', # 'password' => 'test', # ], # 'unbufferedDb' => [ # 'dsn' => 'mysql:host=testdb;dbname=test', # 'username' => 'test', # 'password' => 'test', # ], # 'redis' => [ # 'hostname' => 'testredis', # 'password' => null, # 'port' => 6379, # 'database' => 0, # ], # ], # ]; # # 2) Clone api/tests/functional.suite.dist.yml into api/test/functional.suite.yml # and adjust Redis module host value to the "testredis". # # 3) Uncomment the next 2 services (testdb and testredis): # # testdb: # build: # context: . # target: db # args: # build_env: dev # volumes: # - ./data/mysql-test:/var/lib/mysql # environment: # - MYSQL_ALLOW_EMPTY_PASSWORD=yes # - MYSQL_ROOT_PASSWORD= # - MYSQL_DATABASE=test # - MYSQL_USER=test # - MYSQL_PASSWORD=test # # testredis: # image: redis:3.0-alpine # volumes: # - ./data/redis-test:/data # # 4) To run migrations on tests database you must execute slightly adjusted # migrate command: env YII_ENV=test yii migrate phpmyadmin: build: ./docker/phpmyadmin environment: - PMA_ARBITRARY=1 - PMA_USER=root - PMA_PASSWORD= - VIRTUAL_HOST=pma.account.ely.by.local # Feel free to adjust this domain depends_on: - db networks: - default - nginx-proxy networks: nginx-proxy: external: name: nginx-proxy