version: '2' services: ### Applications Code Container ############################# applications: image: tianon/true volumes: # as long as all the Vainglory repo are checked out on the same level this will work just fine # volume to map Vainsocial.com code. used by Workspace repo. - ../vainsocial/:/var/www/vainsocial - ../vainsocial-tournament/:/var/www/vainsocial-tournament backend: image: tianon/true depends_on: - queue - db-web - db-brawl - db-tournament - bridge - processor - processor_brawl - processor_tournament - apigrabber - apigrabber_brawl - apigrabber_tournament - cruncher backend_light: image: tianon/true depends_on: - queue - db-web - bridge - processor - apigrabber - cruncher frontend: image: tianon/true depends_on: - nginx - php-fpm - db-web - phpmyadmin # ### Workspace Utilities Container ########################### workspace: container_name: workspace build: context: ./workspace args: - INSTALL_XDEBUG=true - INSTALL_NODE=false # required is node is not installed locally - INSTALL_YARN=false - INSTALL_V8JS_EXTENSION=false - COMPOSER_GLOBAL_INSTALL=true # required if composer is not installed locally - INSTALL_WORKSPACE_SSH=true - INSTALL_LARAVEL_ENVOY=false - INSTALL_DEPLOYER=false - PUID=1000 - PGID=1000 - NODE_VERSION=stable - YARN_VERSION=latest - TZ=UTC volumes_from: - applications extra_hosts: # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - "dockerhost:10.0.75.1" links: - db-web - db-brawl - db-tournament ports: - "2222:22" tty: true # ### PHP-FPM Container ####################################### php-fpm: container_name: php-fpm build: context: ./php-fpm args: - INSTALL_XDEBUG=true - INSTALL_SOAP=false - INSTALL_MONGO=false - INSTALL_ZIP_ARCHIVE=false - INSTALL_BCMATH=false - INSTALL_PHPREDIS=true - INSTALL_MEMCACHED=false - INSTALL_OPCACHE=false - INSTALL_EXIF=false dockerfile: Dockerfile-70 volumes_from: - applications - db-web - db-tournament expose: - "9000" links: - workspace - db-web - db-brawl - db-tournament extra_hosts: # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - "dockerhost:10.0.75.1" environment: # IMPORTANT: Set the Remote Interpreter entry matching name to `laravel` - PHP_IDE_CONFIG=serverName=laravel nginx: build: context: ./nginx args: - PHP_UPSTREAM=php-fpm volumes_from: - applications volumes: - ./logs/nginx/:/var/log/nginx - ./nginx/sites/:/etc/nginx/sites-available links: - workspace - php-fpm - queue - bridge - db-web - db-brawl - db-tournament ports: - "80:80" - "443:443" bridge: build: ../bridge ports: - "8880:8880" volumes: - ../bridge:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue - db-web - db-brawl - db-tournament environment: - RABBITMQ_URI=amqp://bridge:bridge@queue/ - DATABASE_URI=mysql://vainweb:vainweb@db-web/vainweb - DATABASE_BRAWL_URI=mysql://vainbrawl:vainbrawl@db-brawl/vainbrawl - DATABASE_TOURNAMENT_URI=mysql://vaintournament:vaintournament@db-tournament/vaintournament - REGIONS=na,eu,sg,sa,ea - TOURNAMENT_REGIONS=tournament-na,tournament-eu,tournament-sg,tournament-sa,tournament-ea - BRAWL_RETENTION_DAYS=7 - PLAYER_PROCESS_QUEUE=process - GRAB_QUEUE=grab - GRAB_BRAWL_QUEUE=grab_brawl - GRAB_TOURNAMENT_QUEUE=grab_tournament - CRUNCH_QUEUE=crunch - CRUNCH_TOURNAMENT_QUEUE=crunch_tournament - SAMPLE_QUEUE=sample - SHOVEL_SIZE=1000 env_file: - local.env apigrabber: build: ../apigrabber volumes: - ../apigrabber:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue environment: - RABBITMQ_URI=amqp://apigrabber:apigrabber@queue/ - QUEUE=grab - PROCESS_QUEUE=process - SAMPLE_QUEUE=sample - GRABBERS=2 env_file: - local.env apigrabber_brawl: build: ../apigrabber volumes: - ../apigrabber:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue environment: - RABBITMQ_URI=amqp://apigrabber:apigrabber@queue/ - QUEUE=grab_brawl - PROCESS_QUEUE=process_brawl - SAMPLE_QUEUE=sample - GRABBERS=1 env_file: - local.env apigrabber_tournament: build: ../apigrabber volumes: - ../apigrabber:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue environment: - RABBITMQ_URI=amqp://apigrabber:apigrabber@queue/ - QUEUE=grab_tournament - PROCESS_QUEUE=process_tournament - SAMPLE_QUEUE=sample - GRABBERS=1 env_file: - local.env sampler: build: ../sampler volumes: - ../sampler:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue environment: - RABBITMQ_URI=amqp://sampler:sampler@queue/ - QUEUE=sample - PROCESS_QUEUE=process - PROCESS_BRAWL_QUEUE=process_brawl - SAMPLERS=5 env_file: - local.env # vaindock_discordbot: # build: ../discordbot # volumes: # - ../discordbot:/usr/src/app # depends_on: # - vaindock_nginx # environment: # - API_BE_URL=http://vaindock_nginx/bridge # - API_FE_URL=http://vaindock_nginx/bots/api # - API_WS_URL=http://vaindock_nginx/ws # env_file: # - local.env processor: build: ../processor volumes: - ../processor:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue - db-web environment: - RABBITMQ_URI=amqp://processor:processor@queue/ - DATABASE_URI=mysql://vainweb:vainweb@db-web/vainweb - QUEUE=process processor_brawl: build: ../processor volumes: - ../processor:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue - db-brawl environment: - RABBITMQ_URI=amqp://processor:processor@queue/ - DATABASE_URI=mysql://vainbrawl:vainbrawl@db-brawl/vainbrawl - QUEUE=process_brawl processor_tournament: build: ../processor volumes: - ../processor:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue - db-tournament environment: - RABBITMQ_URI=amqp://processor:processor@queue/ - DATABASE_URI=mysql://vaintournament:vaintournament@db-tournament/vaintournament - QUEUE=process_tournament cruncher: build: ../cruncher volumes: - ../cruncher:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue - db-web environment: - RABBITMQ_URI=amqp://cruncher:cruncher@queue/ - DATABASE_URI=mysql://vainweb:vainweb@db-web/vainweb cruncher_tournament: build: ../cruncher volumes: - ../cruncher:/usr/src/app - ../orm:/usr/src/orm depends_on: - queue - db-web environment: - RABBITMQ_URI=amqp://cruncher:cruncher@queue/ - DATABASE_URI=mysql://vainweb:vainweb@db-tournament/vaintournament - QUEUE=crunch_tournament db-web: image: mariadb:10 volumes: - db-web-data:/var/lib/mysql ports: - "3306:3306" environment: MYSQL_DATABASE: vainweb MYSQL_USER: vainweb MYSQL_PASSWORD: vainweb MYSQL_ALLOW_EMPTY_PASSWORD: 1 db-brawl: image: mariadb:10 volumes: - db-brawl-data:/var/lib/mysql ports: - "3307:3306" environment: MYSQL_DATABASE: vainbrawl MYSQL_USER: vainbrawl MYSQL_PASSWORD: vainbrawl MYSQL_ALLOW_EMPTY_PASSWORD: 1 db-tournament: image: mariadb:10 volumes: - db-tournament-data:/var/lib/mysql ports: - "3308:3306" environment: MYSQL_DATABASE: vaintournament MYSQL_USER: vaintournament MYSQL_PASSWORD: vaintournament MYSQL_ALLOW_EMPTY_PASSWORD: 1 phpmyadmin: image: phpmyadmin/phpmyadmin:4.6 environment: - PMA_ARBITRARY=1 ports: - "8882:80" volumes: - /sessions analyzer: build: ../analyzer volumes: - ../analyzer:/usr/src/app depends_on: - queue - db-web environment: - RABBITMQ_URI=amqp://analyzer:analyzer@queue/ - DATABASE_URI=mysql+cymysql://vainweb:vainweb@db-web/vainweb queue: build: ./rabbitmq hostname: queue volumes: - queue-data:/var/lib/queue ports: - "4369:4369" - "5671:5671" - "5672:5672" - "25672:25672" - "15674:15674" # web-stomp - "8881:15672" # management guest/guest environment: - RABBITMQ_HIPE_COMPILE=1 - RABBITMQ_RECREATE_ON_STARTUP=true # for debugging volumes: db-web-data: driver: "local" db-brawl-data: driver: "local" db-tournament-data: driver: "local" queue-data: driver: "local" sessions: ## nothing is connected to this (- ./data/sessions:/sessions) driver: "local"