version: '2' services: ### Applications Code Container ############################# applications: image: tianon/true volumes: - ../:/var/www # - ../sample/:/var/www/sample ### Workspace Utilities Container ########################### workspace: build: context: ./workspace args: - INSTALL_XDEBUG=false - INSTALL_MONGO=false - INSTALL_NODE=false - INSTALL_YARN=false - INSTALL_DRUSH=false - INSTALL_AEROSPIKE_EXTENSION=false - INSTALL_V8JS_EXTENSION=false - COMPOSER_GLOBAL_INSTALL=false - INSTALL_WORKSPACE_SSH=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" ports: - "2222:22" tty: true ### PHP-FPM Container ####################################### php-fpm: build: context: ./php-fpm args: - INSTALL_XDEBUG=false - INSTALL_SOAP=false - INSTALL_MONGO=false - INSTALL_ZIP_ARCHIVE=false - INSTALL_BCMATH=false - INSTALL_MEMCACHED=false - INSTALL_OPCACHE=false - INSTALL_AEROSPIKE_EXTENSION=false - CODEIGNITER=false dockerfile: Dockerfile-70 volumes_from: - applications expose: - "9000" links: - workspace 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 Server Container ################################## nginx: build: context: ./nginx args: - PHP_UPSTREAM=php-fpm volumes_from: - applications volumes: - ./logs/nginx/:/var/log/nginx - ./nginx/sites/:/etc/nginx/sites-available ports: - "80:80" - "443:443" links: - php-fpm ### Apache Server Container ################################# apache2: build: context: ./apache2 args: - PHP_SOCKET=php-fpm:9000 volumes_from: - applications volumes: - ./logs/apache2:/var/log/apache2 ports: - "80:80" - "443:443" links: - php-fpm ### HHVM Container ########################################## hhvm: build: ./hhvm volumes_from: - applications expose: - "9000" links: - workspace ### MySQL Container ######################################### mysql: build: context: ./mysql args: - MYSQL_DATABASE=homestead - MYSQL_USER=homestead - MYSQL_PASSWORD=secret - MYSQL_ROOT_PASSWORD=root volumes: - mysql:/var/lib/mysql ports: - "3306:3306" ### MariaDB Container ####################################### mariadb: build: ./mariadb volumes: - mysql:/var/lib/mysql ports: - "3306:3306" environment: MYSQL_DATABASE: homestead MYSQL_USER: homestead MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root ### PostgreSQL Container #################################### postgres: build: ./postgres volumes: - postgres:/var/lib/postgresql/data ports: - "5432:5432" environment: POSTGRES_DB: homestead POSTGRES_USER: homestead POSTGRES_PASSWORD: secret ### PostgreSQL PostGis Container ############################ postgres-postgis: build: ./postgres-postgis volumes: - postgres:/var/lib/postgresql/data ports: - "5432:5432" environment: POSTGRES_DB: homestead POSTGRES_USER: homestead POSTGRES_PASSWORD: secret ### Neo4j Container ######################################### neo4j: build: ./neo4j ports: - "7474:7474" - "1337:1337" environment: - NEO4J_AUTH=homestead:secret volumes: - neo4j:/var/lib/neo4j/data ### MongoDB Container ####################################### mongo: build: ./mongo ports: - "27017:27017" volumes: - mongo:/data/db ### Redis Container ######################################### redis: build: ./redis volumes: - redis:/data ports: - "6379:6379" ### Aerospike c Container ################################### aerospike: build: ./aerospike volumes_from: - workspace volumes: - aerospike:/opt/aerospike/data ports: - "3000:3000" - "3001:3001" - "3002:3002" - "3003:3003" ### Memcached Container ##################################### memcached: build: ./memcached volumes: - memcached:/var/lib/memcached ports: - "11211:11211" links: - php-fpm ### Beanstalkd Container #################################### beanstalkd: build: ./beanstalkd ports: - "11300:11300" privileged: true links: - php-fpm ### RabbitMQ Container ###################################### rabbitmq: build: ./rabbitmq ports: - "5672:5672" - "15671:15671" - "8080:15672" privileged: true environment: RABBITMQ_DEFAULT_USER: guest RABBITMQ_DEFAULT_PASS: guest links: - php-fpm ### Beanstalkd Console Container ############################ beanstalkd-console: build: ./beanstalkd-console ports: - "2080:2080" links: - beanstalkd ### Caddy Server Container ################################## caddy: build: ./caddy ports: - "80:80" - "443:443" - "2015:2015" volumes_from: - applications volumes: - ./caddy/Caddyfile:/etc/Caddyfile - ./logs/caddy:/var/log/caddy links: - php-fpm ### phpMyAdmin Container #################################### phpmyadmin: build: ./phpmyadmin environment: PMA_ARBITRARY: 1 MYSQL_USER: homestead MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root ports: - "8080:80" links: # for mysql container - "mysql:db" # for mariadb container # - "mariadb:db" ### pgAdmin Container ####################################### pgadmin: build: ./pgadmin ports: - "5050:5050" links: - postgres ### ElasticSearch Container ################################# elasticsearch: build: ./elasticsearch volumes: - elasticsearch-data:/usr/share/elasticsearch/data - elasticsearch-plugins:/usr/share/elasticsearch/data ports: - "9200:9200" - "9300:9300" links: - php-fpm ### Volumes Setup ########################################### volumes: mysql: driver: "local" postgres: driver: "local" memcached: driver: "local" redis: driver: "local" neo4j: driver: "local" mariadb: driver: "local" mongo: driver: "local" phpmyadmin: driver: "local" aerospike: driver: "local" caddy: driver: "local" elasticsearch-data: driver: "local" elasticsearch-plugins: driver: "local" sessions: ## nothing is connected to this (- ./data/sessions:/sessions) driver: "local"