version: '3.4' services: web: image: elyby/accounts/nginx:local build: context: . target: web args: build_env: dev depends_on: - app - emails-renderer env_file: .env ports: - 80:80 volumes: - ./:/var/www/html app: image: elyby/accounts:local 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: elyby/accounts:local 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: elyby/accounts:local 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: image: elyby/accounts/mariadb:local build: context: . target: db args: build_env: dev volumes: - ./data/mariadb:/bitnami/mariadb environment: ALLOW_EMPTY_PASSWORD: "yes" MARIADB_ROOT_PASSWORD: "" MARIADB_DATABASE: ely_accounts MARIADB_USER: ely_accounts_user MARIADB_PASSWORD: ely_accounts_password redis: image: redis:5.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) Uncomment the next 2 services (testdb and testredis): # # testdb: # image: elyby/accounts/mariadb:local # build: # context: . # target: db # args: # build_env: dev # volumes: # - ./data/mariadb-test:/bitnami/mariadb # environment: # ALLOW_EMPTY_PASSWORD: "yes" # MARIADB_ROOT_PASSWORD: "" # MARIADB_DATABASE: test # MARIADB_USER: test # MARIADB_PASSWORD: test # # testredis: # image: redis:5.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= depends_on: - db ports: - 8080:80