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 backend: image: tianon/true depends_on: - vaindock_queue - vaindock_db-web - vaindock_db-brawl - vaindock_db-tournament - vaindock_bridge - vaindock_processor - vaindock_processor_brawl - vaindock_processor_tournament - vaindock_apigrabber - vaindock_apigrabber_brawl - vaindock_apigrabber_tournament - vaindock_cruncher - analyzer backend_light: image: tianon/true depends_on: - vaindock_queue - vaindock_db-web - vaindock_db-brawl - vaindock_db-tournament - vaindock_bridge - vaindock_processor - vaindock_apigrabber - vaindock_cruncher frontend: image: tianon/true depends_on: - vaindock_nginx - vaindock_queue - php-fpm - vaindock_db-web - vaindock_phpmyadmin ### Workspace Utilities Container ########################### workspace: container_name: vaindock_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: - vaindock_db-web - vaindock_db-brawl - vaindock_db-tournament ports: - "2222:22" tty: true ### PHP-FPM Container ####################################### php-fpm: container_name: vaindock_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 - vaindock_db-web expose: - "9000" links: - workspace - vaindock_db-web - vaindock_db-brawl - vaindock_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 vaindock_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 - vaindock_queue - vaindock_bridge - vaindock_db-web - vaindock_db-brawl - vaindock_db-tournament ports: - "80:80" - "443:443" vaindock_bridge: build: ../bridge ports: - "8880:8880" volumes: - ../bridge:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue - vaindock_db-web - vaindock_db-brawl - vaindock_db-tournament environment: - RABBITMQ_URI=amqp://bridge:bridge@vaindock_queue/ - DATABASE_URI=mysql://vainweb:vainweb@vaindock_db-web/vainweb - DATABASE_BRAWL_URI=mysql://vainbrawl:vainbrawl@vaindock_db-brawl/vainbrawl - DATABASE_TOURNAMENT_URI=mysql://vaintournament:vaintournament@vaindock_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=50000 env_file: - local.env vaindock_apigrabber: build: ../apigrabber volumes: - ../apigrabber:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue environment: - RABBITMQ_URI=amqp://apigrabber:apigrabber@vaindock_queue/ - QUEUE=grab - PROCESS_QUEUE=process - SAMPLE_QUEUE=sample - GRABBERS=2 env_file: - local.env vaindock_apigrabber_brawl: build: ../apigrabber volumes: - ../apigrabber:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue environment: - RABBITMQ_URI=amqp://apigrabber:apigrabber@vaindock_queue/ - QUEUE=grab_brawl - PROCESS_QUEUE=process_brawl - SAMPLE_QUEUE=sample - GRABBERS=1 env_file: - local.env vaindock_apigrabber_tournament: build: ../apigrabber volumes: - ../apigrabber:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue environment: - RABBITMQ_URI=amqp://apigrabber:apigrabber@vaindock_queue/ - QUEUE=grab_tournament - PROCESS_QUEUE=process_tournament - SAMPLE_QUEUE=sample - GRABBERS=1 env_file: - local.env vaindock_sampler: build: ../sampler volumes: - ../sampler:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue environment: - RABBITMQ_URI=amqp://sampler:sampler@vaindock_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 vaindock_processor: build: ../processor volumes: - ../processor:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue - vaindock_db-web environment: - RABBITMQ_URI=amqp://processor:processor@vaindock_queue/ - DATABASE_URI=mysql://vainweb:vainweb@vaindock_db-web/vainweb - QUEUE=process - ANALYZE_QUEUE=analyze - DOANALYZEMATCH=true vaindock_processor_brawl: build: ../processor volumes: - ../processor:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue - vaindock_db-brawl environment: - RABBITMQ_URI=amqp://processor:processor@vaindock_queue/ - DATABASE_URI=mysql://vainbrawl:vainbrawl@vaindock_db-brawl/vainbrawl - QUEUE=process_brawl vaindock_processor_tournament: build: ../processor volumes: - ../processor:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue - vaindock_db-tournament environment: - RABBITMQ_URI=amqp://processor:processor@vaindock_queue/ - DATABASE_URI=mysql://vaintournament:vaintournament@vaindock_db-tournament/vaintournament - QUEUE=process_tournament vaindock_cruncher: build: ../cruncher volumes: - ../cruncher:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue - vaindock_db-web environment: - RABBITMQ_URI=amqp://cruncher:cruncher@vaindock_queue/ - DATABASE_URI=mysql://vainweb:vainweb@vaindock_db-web/vainweb - QUEUE=crunch - SLOWMODE=100 vaindock_cruncher_tournament: build: ../cruncher volumes: - ../cruncher:/usr/src/app - ../orm:/usr/src/orm depends_on: - vaindock_queue - vaindock_db-web environment: - RABBITMQ_URI=amqp://cruncher:cruncher@vaindock_queue/ - DATABASE_URI=mysql://vainweb:vainweb@vaindock_db-tournament/vaintournament - QUEUE=crunch_tournament analyzer: build: ../analyzer volumes: - ../analyzer:/usr/src/app depends_on: - vaindock_queue - vaindock_db-web environment: - RABBITMQ_URI=amqp://analyzer:analyzer@vaindock_queue/ - DATABASE_URI=mysql+cymysql://vainweb:vainweb@vaindock_db-web/vainweb - BATCHSIZE=500 - CHUNKSIZE=100 vaindock_db-web: image: mariadb:10 volumes: - vaindock_db-web-data:/var/lib/mysql ports: - "3306:3306" volumes: - ./mariadb:/etc/mysql/conf.d environment: MYSQL_DATABASE: vainweb MYSQL_USER: vainweb MYSQL_PASSWORD: vainweb MYSQL_ALLOW_EMPTY_PASSWORD: 1 vaindock_db-brawl: image: mariadb:10 volumes: - vaindock_db-brawl-data:/var/lib/mysql ports: - "3307:3306" environment: MYSQL_DATABASE: vainbrawl MYSQL_USER: vainbrawl MYSQL_PASSWORD: vainbrawl MYSQL_ALLOW_EMPTY_PASSWORD: 1 vaindock_db-tournament: image: mariadb:10 volumes: - vaindock_db-tournament-data:/var/lib/mysql ports: - "3308:3306" environment: MYSQL_DATABASE: vaintournament MYSQL_USER: vaintournament MYSQL_PASSWORD: vaintournament MYSQL_ALLOW_EMPTY_PASSWORD: 1 vaindock_phpmyadmin: image: phpmyadmin/phpmyadmin:edge-4.7 environment: - PMA_ARBITRARY=1 ports: - "8882:80" volumes: - /sessions vaindock_queue: build: ./rabbitmq hostname: vaindock_queue volumes: - vaindock_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: vaindock_db-web-data: driver: "local" vaindock_db-brawl-data: driver: "local" vaindock_db-tournament-data: driver: "local" vaindock_queue-data: driver: "local" sessions: ## nothing is connected to this (- ./data/sessions:/sessions) driver: "local"