Mahmoud Zalt 7 лет назад
Родитель
Сommit
a0c5ef75d2

+ 15 - 17
DOCUMENTATION/content/documentation/index.md

@@ -478,18 +478,14 @@ composer create-project laravel/laravel my-cool-app "5.2.*"
 For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
 
 
-3 - Edit `docker-compose.yml` to Map the new application path:
+3 - Edit `.env` to Map the new application path:
 
 By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder.
 
 Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www` with `../my-cool-app/:/var/www`, as follow:
 
-```yaml
-    application:
-		 image: tianon/true
-        volumes:
-            - ../my-cool-app/:/var/www
-    ...
+```dotenv
+  APP_CODE_PATH_HOST=../my-cool-app/
 ```
 4 - Go to that folder and start working..
 
@@ -1525,14 +1521,14 @@ Quick Setup giude, (we recommend you check their docs)
 You can use the d4m-nfs solution in 2 ways, one is using the Laradock built it integration, and the other is using the tool separatly. Below is show case of both methods:
 
 
-#### B.1: using the built in d4m-nfs integration
+### B.1: using the built in d4m-nfs integration
 
 In simple terms, docker-sync creates a docker container with a copy of all the application files that can be accessed very quickly from the other containers.
 On the other hand, docker-sync runs a process on the host machine that continuously tracks and updates files changes from the host to this intermediate container.
 
 Out of the box, it comes pre-configured for OS X, but using it on Windows is very easy to set-up by modifying the `DOCKER_SYNC_STRATEGY` on the `.env`
 
-##### Usage
+#### Usage
 
 Laradock comes with `sync.sh`, an optional bash script, that automates installing, running and stopping docker-sync.  Note that to run the bash script you may need to change the permissions `chmod 755 sync.sh`
 
@@ -1547,22 +1543,24 @@ Laradock comes with `sync.sh`, an optional bash script, that automates installin
 DOCKER_SYNC_STRATEGY=native_osx
 ```
 
-2) Install the docker-sync gem on the host-machine:
+3) set `APP_CODE_PATH_CONTAINER=/var/www` to `APP_CODE_PATH_CONTAINER=/var/www:nocopy` in the .env file
+
+4) Install the docker-sync gem on the host-machine:
 ```bash
 ./sync.sh install
 ```
-3) Start docker-sync and the Laradock environment.
+5) Start docker-sync and the Laradock environment.
 Specify the services you want to run, as you would normally do with `docker-compose up`
 ```bash
 ./sync.sh up nginx mysql
 ```
 Please note that the first time docker-sync runs, it will copy all the files to the intermediate container and that may take a very long time (15min+).
-4) To stop the environment and docker-sync do:
+6) To stop the environment and docker-sync do:
 ```bash
 ./sync.sh down
 ```
 
-##### Setting up Aliases (optional)
+#### Setting up Aliases (optional)
 
 You may create bash profile aliases to avoid having to remember and type these commands for everyday development.
 Add the following lines to your `~/.bash_profile`:
@@ -1576,7 +1574,7 @@ alias devdown="cd /PATH_TO_LARADOCK/laradock; ./sync.sh down"
 Now from any location on your machine, you can simply run `devup`, `devbash` and `devdown`.
 
 
-##### Additional Commands
+#### Additional Commands
 
 Opening bash on the workspace container (to run artisan for example):
  ```bash
@@ -1592,7 +1590,7 @@ Removing and cleaning up the files and the docker-sync container. Use only if yo
 ```
 
 
-##### Additional Notes
+#### Additional Notes
 
 - You may run laradock with or without docker-sync at any time using with the same `.env` and `docker-compose.yml`, because the configuration is overridden automatically when docker-sync is used.
 - You may inspect the `sync.sh` script to learn each of the commands and even add custom ones.
@@ -1609,7 +1607,7 @@ Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/
 
 <br>
 
-#### B.2: using the d4m-nfs tool
+### B.2: using the d4m-nfs tool
 
 [D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one.
 
@@ -1751,4 +1749,4 @@ Example:
 ```bash
 WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
 WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
-```
+```

+ 2 - 2
DOCUMENTATION/content/getting-started/index.md

@@ -161,7 +161,7 @@ We recommend using a Docker version which is newer than 1.13.
 cp env-example .env
 ```
 
-You can edit the `.env` file to chose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used.
+You can edit the `.env` file to choose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used.
 
 Depending on the host's operating system you may need to change the value given to `COMPOSE_FILE`. When you are running Laradock on Mac OS the correct file separator to use is `:`. When running Laradock from a Windows environment multiple files must be separated with `;`.
 
@@ -173,7 +173,7 @@ In this example we'll see how to run NGINX (web server) and MySQL (database engi
 docker-compose up -d nginx mysql
 ```
 
-**Note**: The `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command. If you couldn't find them running then you need specify them as follow: `docker-compose up -d nginx php-fpm mysql workspace`.
+**Note**: The web servers `nginx`, `apache`.. all depend on `php-fpm`, means if you just run, them they will automatically run the `php-fpm` for you, so no need to specify them in the `up` command. If you don't see them running then you may need run them as follow: `docker-compose up -d nginx php-fpm mysql...`.
 
 
 You can select your own combination of containers from [this list](http://laradock.io/introduction/#supported-software-images).

+ 1 - 1
DOCUMENTATION/content/introduction/index.md

@@ -35,7 +35,7 @@ cp env-example .env
 3 - Run your containers:
 
 ```shell
-docker-compose up -d nginx mysql redis beanstalkd
+docker-compose up -d nginx mysql phpmyadmin redis workspace 
 ```
 
 4 - Open your project's `.env` file and set the following:

+ 0 - 9
docker-compose.dev.yml

@@ -1,9 +0,0 @@
-version: "2"
-
-services:
-
-### Applications Code Container #############################
-
-    applications:
-      volumes:
-        - ${APPLICATION}:/var/www:cached

+ 5 - 5
docker-compose.sync.yml

@@ -1,13 +1,13 @@
-version: '2'
+version: '3'
 
 services:
 
 ### Applications Code Container #############################
 
-    applications:
-      image: tianon/true
-      volumes:
-        - applications-sync:/var/www:nocopy # nocopy is required
+    # applications:
+    #   image: tianon/true
+    #   volumes:
+    #     - applications-sync:/var/www:nocopy # nocopy is required
 
 ### Volumes Setup #############################################
 

+ 110 - 168
docker-compose.yml

@@ -1,14 +1,48 @@
-version: '2'
+version: '3'
 
-services:
-
-### Applications Code Container #############################
+networks:
+  frontend:
+    driver: ${NETWORKS_DRIVER}
+  backend:
+    driver: ${NETWORKS_DRIVER}
 
-    applications:
-      image: tianon/true
+volumes:
+  mysql:
+    driver: ${VOLUMES_DRIVER}
+  percona:
+    driver: ${VOLUMES_DRIVER}
+  mssql:
+    driver: ${VOLUMES_DRIVER}
+  postgres:
+    driver: ${VOLUMES_DRIVER}
+  memcached:
+    driver: ${VOLUMES_DRIVER}
+  redis:
+    driver: ${VOLUMES_DRIVER}
+  neo4j:
+    driver: ${VOLUMES_DRIVER}
+  mariadb:
+    driver: ${VOLUMES_DRIVER}
+  mongo:
+    driver: ${VOLUMES_DRIVER}
+  minio:
+    driver: ${VOLUMES_DRIVER}
+  rethinkdb:
+    driver: ${VOLUMES_DRIVER}
+  phpmyadmin:
+    driver: ${VOLUMES_DRIVER}
+  adminer:
+    driver: ${VOLUMES_DRIVER}
+  aerospike:
+    driver: ${VOLUMES_DRIVER}
+  caddy:
+    driver: ${VOLUMES_DRIVER}
+  elasticsearch:
+    driver: ${VOLUMES_DRIVER}
 
-### Workspace Utilities Container ###########################
+services:
 
+### Workspace Utilities ##################################
     workspace:
       build:
         context: ./workspace
@@ -55,8 +89,8 @@ services:
           - BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
           - BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
         dockerfile: "Dockerfile-${PHP_VERSION}"
-      volumes_from:
-        - applications
+      volumes:
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
       extra_hosts:
         - "dockerhost:${DOCKER_HOST_IP}"
       ports:
@@ -68,8 +102,7 @@ services:
         - frontend
         - backend
 
-### PHP-FPM Container #######################################
-
+### PHP-FPM ##############################################
     php-fpm:
       build:
         context: ./php-fpm
@@ -100,14 +133,11 @@ services:
           - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
           - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
         dockerfile: "Dockerfile-${PHP_VERSION}"
-      volumes_from:
-        - applications
       volumes:
         - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
       expose:
         - "9000"
-      depends_on:
-        - workspace
       extra_hosts:
         - "dockerhost:${DOCKER_HOST_IP}"
       environment:
@@ -115,17 +145,15 @@ services:
       networks:
         - backend
 
-### PHP Worker Container #####################################
-
+### PHP Worker ############################################
     php-worker:
       build:
         context: ./php-worker
         dockerfile: "Dockerfile-${PHP_VERSION}"
         args:
           - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
-      volumes_from:
-        - applications
       volumes:
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
         - ./php-worker/supervisord.d:/etc/supervisord.d
       depends_on:
         - workspace
@@ -134,17 +162,15 @@ services:
       networks:
         - backend
 
-### NGINX Server Container ##################################
-
+### NGINX Server #########################################
     nginx:
       build:
         context: ./nginx
         args:
           - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
           - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
-      volumes_from:
-        - applications
       volumes:
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
         - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
         - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
       ports:
@@ -156,8 +182,7 @@ services:
         - frontend
         - backend
 
-### Blackfire Container #################################
-
+### Blackfire ########################################
     blackfire:
       image: blackfire/blackfire
       environment:
@@ -168,8 +193,7 @@ services:
       networks:
         - backend
 
-### Apache Server Container #################################
-
+### Apache Server ########################################
     apache2:
       build:
         context: ./apache2
@@ -178,9 +202,8 @@ services:
           - PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
           - PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
           - DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
-      volumes_from:
-        - applications
       volumes:
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
         - ${APACHE_HOST_LOG_PATH}:/var/log/apache2
         - ${APACHE_SITES_PATH}:/etc/apache2/sites-available
       ports:
@@ -192,12 +215,11 @@ services:
         - frontend
         - backend
 
-### HHVM Container ##########################################
-
+### HHVM #################################################
     hhvm:
       build: ./hhvm
-      volumes_from:
-        - applications
+      volumes:
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
       expose:
         - "9000"
       depends_on:
@@ -206,13 +228,12 @@ services:
         - frontend
         - backend
 
-### Minio Container #########################################
-
+### Minio ################################################
     minio:
       build: ./minio
       volumes:
-        - ${DATA_SAVE_PATH}/minio/data:/export
-        - ${DATA_SAVE_PATH}/minio/config:/root/.minio
+        - ${DATA_PATH_HOST}/minio/data:/export
+        - ${DATA_PATH_HOST}/minio/config:/root/.minio
       ports:
         - "${MINIO_PORT}:9000"
       environment:
@@ -222,8 +243,7 @@ services:
         - frontend
         - backend
 
-### MySQL Container #########################################
-
+### MySQL ################################################
     mysql:
       build:
         context: ./mysql
@@ -236,15 +256,14 @@ services:
         - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
         - TZ=${WORKSPACE_TIMEZONE}
       volumes:
-        - ${DATA_SAVE_PATH}/mysql:/var/lib/mysql
+        - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
         - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
       ports:
         - "${MYSQL_PORT}:3306"
       networks:
         - backend
 
-### Percona Container #########################################
-
+### Percona ################################################
     percona:
       build:
         context: ./percona
@@ -254,15 +273,14 @@ services:
         - MYSQL_PASSWORD=${PERCONA_PASSWORD}
         - MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
       volumes:
-        - ${DATA_SAVE_PATH}/percona:/var/lib/mysql
+        - ${DATA_PATH_HOST}/percona:/var/lib/mysql
         - ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
       ports:
         - "${PERCONA_PORT}:3306"
       networks:
         - backend
 
-### MSSQL Container #########################################
-
+### MSSQL ################################################
     mssql:
       build:
         context: ./mssql
@@ -271,18 +289,17 @@ services:
         - SA_PASSWORD=${MSSQL_PASSWORD}
         - ACCEPT_EULA=Y
       volumes:
-        - ${DATA_SAVE_PATH}/mssql:/var/opt/mssql
+        - ${DATA_PATH_HOST}/mssql:/var/opt/mssql
       ports:
         - "${MSSQL_PORT}:1433"
       networks:
         - backend
 
-### MariaDB Container #######################################
-
+### MariaDB ##############################################
     mariadb:
       build: ./mariadb
       volumes:
-        - ${DATA_SAVE_PATH}/mariadb:/var/lib/mysql
+        - ${DATA_PATH_HOST}/mariadb:/var/lib/mysql
         - ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
       ports:
         - "${MARIADB_PORT}:3306"
@@ -294,12 +311,11 @@ services:
       networks:
         - backend
 
-### PostgreSQL Container ####################################
-
+### PostgreSQL ###########################################
     postgres:
       build: ./postgres
       volumes:
-        - ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data
+        - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
       ports:
         - "${POSTGRES_PORT}:5432"
       environment:
@@ -309,12 +325,11 @@ services:
       networks:
         - backend
 
-### PostgreSQL PostGis Container ############################
-
+### PostgreSQL PostGis ###################################
     postgres-postgis:
       build: ./postgres-postgis
       volumes:
-        - ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data
+        - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
       ports:
         - "${POSTGRES_PORT}:5432"
       environment:
@@ -324,8 +339,7 @@ services:
       networks:
         - backend
 
-### Neo4j Container #########################################
-
+### Neo4j ################################################
     neo4j:
       build: ./neo4j
       ports:
@@ -334,51 +348,46 @@ services:
       environment:
         - NEO4J_AUTH=default:secret
       volumes:
-        - ${DATA_SAVE_PATH}/neo4j:/var/lib/neo4j/data
+        - ${DATA_PATH_HOST}/neo4j:/var/lib/neo4j/data
       networks:
         - backend
 
-### MongoDB Container #######################################
-
+### MongoDB ##############################################
     mongo:
       build: ./mongo
       ports:
         - "${MONGODB_PORT}:27017"
       volumes:
-        - ${DATA_SAVE_PATH}/mongo:/data/db
+        - ${DATA_PATH_HOST}/mongo:/data/db
       networks:
         - backend
 
-### RethinkDB Container #######################################
-
+### RethinkDB ##############################################
     rethinkdb:
       build: ./rethinkdb
       ports:
         - "${RETHINKDB_PORT}:8080"
       volumes:
-        - ${DATA_SAVE_PATH}/rethinkdb:/data/rethinkdb_data
+        - ${DATA_PATH_HOST}/rethinkdb:/data/rethinkdb_data
       networks:
         - backend
 
-### Redis Container #########################################
-
+### Redis ################################################
     redis:
       build: ./redis
       volumes:
-        - ${DATA_SAVE_PATH}/redis:/data
+        - ${DATA_PATH_HOST}/redis:/data
       ports:
         - "${REDIS_PORT}:6379"
       networks:
         - backend
 
-### Aerospike c Container ###################################
-
+### Aerospike ##########################################
     aerospike:
       build: ./aerospike
-      volumes_from:
-        - workspace
       volumes:
-        - ${DATA_SAVE_PATH}/aerospike:/opt/aerospike/data
+        - workspace
+        - ${DATA_PATH_HOST}/aerospike:/opt/aerospike/data
       ports:
         - "${AEROSPIKE_SERVICE_PORT}:3000"
         - "${AEROSPIKE_FABRIC_PORT}:3001"
@@ -387,12 +396,11 @@ services:
       networks:
         - backend
 
-### Memcached Container #####################################
-
+### Memcached ############################################
     memcached:
       build: ./memcached
       volumes:
-        - ${DATA_SAVE_PATH}/memcached:/var/lib/memcached
+        - ${DATA_PATH_HOST}/memcached:/var/lib/memcached
       ports:
         - "${MEMCACHED_HOST_PORT}:11211"
       depends_on:
@@ -400,8 +408,7 @@ services:
       networks:
         - backend
 
-### Beanstalkd Container ####################################
-
+### Beanstalkd ###########################################
     beanstalkd:
       build: ./beanstalkd
       ports:
@@ -412,8 +419,7 @@ services:
       networks:
         - backend
 
-### RabbitMQ Container ######################################
-
+### RabbitMQ #############################################
     rabbitmq:
       build: ./rabbitmq
       ports:
@@ -429,8 +435,7 @@ services:
       networks:
         - backend
 
-### Beanstalkd Console Container ############################
-
+### Beanstalkd Console ###################################
     beanstalkd-console:
       build: ./beanstalkd-console
       ports:
@@ -440,16 +445,14 @@ services:
       networks:
         - backend
 
-### Caddy Server Container ##################################
-
+### Caddy Server #########################################
     caddy:
       build: ./caddy
-      volumes_from:
-        - applications
       volumes:
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
         - ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
         - ${CADDY_HOST_LOG_PATH}:/var/log/caddy
-        - ${DATA_SAVE_PATH}:/root/.caddy
+        - ${DATA_PATH_HOST}:/root/.caddy
       ports:
         - "${CADDY_HOST_HTTP_PORT}:80"
         - "${CADDY_HOST_HTTPS_PORT}:443"
@@ -459,8 +462,7 @@ services:
         - frontend
         - backend
 
-### phpMyAdmin Container ####################################
-
+### phpMyAdmin ###########################################
     phpmyadmin:
       build: ./phpmyadmin
       environment:
@@ -476,8 +478,7 @@ services:
         - frontend
         - backend
 
-### Adminer Container ####################################
-
+### Adminer ###########################################
     adminer:
       build:
         context: ./adminer
@@ -491,14 +492,13 @@ services:
         - frontend
         - backend
 
-### pgAdmin Container #######################################
-
+### pgAdmin ##############################################
     pgadmin:
       build: ./pgadmin
       ports:
         - "5050:5050"
       volumes:
-        - ${DATA_SAVE_PATH}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
+        - ${DATA_PATH_HOST}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
       depends_on:
         - postgres
       networks:
@@ -506,12 +506,11 @@ services:
         - backend
 
 
-### ElasticSearch Container #################################
-
+### ElasticSearch ########################################
     elasticsearch:
       build: ./elasticsearch
       volumes:
-        - elasticsearch-data:/usr/share/elasticsearch/data
+        - elasticsearch:/usr/share/elasticsearch/data
       environment:
         - cluster.name=laradock-cluster
         - bootstrap.memory_lock=true
@@ -520,7 +519,6 @@ services:
         memlock:
           soft: -1
           hard: -1
-      mem_limit: 1024m
       ports:
         - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
         - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
@@ -531,8 +529,7 @@ services:
         - backend
 
 
-### Kibana Container #######################################
-
+### Kibana ##############################################
     kibana:
       build: ./kibana
       ports:
@@ -543,22 +540,20 @@ services:
         - frontend
         - backend
 
-### Certbot Container ##################################
-
+### Certbot #########################################
     certbot:
       build:
         context: ./certbot
       volumes:
         - ./data/certbot/certs/:/var/certs
-        - ./certbot/letsencrypt/:/var/www/letsencrypt
+        - ./certbot/letsencrypt/:${APP_CODE_PATH_CONTAINER}/letsencrypt
       environment:
         - CN="fake.domain.com"
         - EMAIL="fake.email@gmail.com"
       networks:
         - frontend
 
-### Mailhog Container #########################################
-
+### Mailhog ################################################
     mailhog:
       build: ./mailhog
       ports:
@@ -568,8 +563,7 @@ services:
         - frontend
         - backend
 
-### MailDev Container #######################################
-
+### MailDev ##############################################
     maildev:
       build: ./maildev
       ports:
@@ -579,8 +573,7 @@ services:
         - frontend
         - backend
 
-### Selenium Container ########################################
-
+### Selenium ###############################################
     selenium:
       build: ./selenium
       ports:
@@ -590,8 +583,7 @@ services:
       networks:
         - frontend
 
-### Varnish Proxy 1 ##########################################
-
+### Varnish ##########################################
     proxy:
       build: ./varnish
       expose:
@@ -609,8 +601,6 @@ services:
       networks:
         - frontend
 
-### Varnish Proxy 2 ##########################################
-
     proxy2:
       build: ./varnish
       expose:
@@ -628,8 +618,7 @@ services:
       networks:
         - frontend
 
-### HAProxy Load Balancer ####################################
-
+### HAProxy ####################################
     haproxy:
       build: ./haproxy
       ports:
@@ -641,7 +630,6 @@ services:
         - proxy2
 
 ### Jenkins ###################################################
-
     jenkins:
       build: ./jenkins
       environment:
@@ -657,13 +645,12 @@ services:
         - frontend
         - backend
 
-### Grafana Container #########################################
-
+### Grafana ################################################
     grafana:
       build:
         context: ./grafana
       volumes:
-        - ${DATA_SAVE_PATH}/grafana:/var/lib/grafana
+        - ${DATA_PATH_HOST}/grafana:/var/lib/grafana
       ports:
         - "${GRAFANA_PORT}:3000"
       networks:
@@ -683,8 +670,7 @@ services:
         - frontend
         - backend
         
-### Solr Container #########################################
-
+### Solr ################################################
     solr:
       build:
         context: ./solr
@@ -692,62 +678,18 @@ services:
           - SOLR_VERSION=${SOLR_VERSION}
           - SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
       volumes:
-        - ${DATA_SAVE_PATH}/solr:/opt/solr/server/solr/mycores
+        - ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
       ports:
         - "${SOLR_PORT}:8983"
       networks:
         - backend
 
-### AWS EB-CLI ####
+### AWS EB-CLI ################################################
     aws:
       build:
         context: ./aws
-      volumes_from:
-        - applications
+      volumes:
+        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
       depends_on:
         - workspace
       tty: true
-
-### Networks Setup ############################################
-
-networks:
-  frontend:
-    driver: "bridge"
-  backend:
-    driver: "bridge"
-
-### Volumes Setup #############################################
-
-volumes:
-  mysql:
-    driver: "local"
-  percona:
-    driver: "local"
-  mssql:
-    driver: "local"
-  postgres:
-    driver: "local"
-  memcached:
-    driver: "local"
-  redis:
-    driver: "local"
-  neo4j:
-    driver: "local"
-  mariadb:
-    driver: "local"
-  mongo:
-    driver: "local"
-  minio:
-    driver: "local"
-  rethinkdb:
-    driver: "local"
-  phpmyadmin:
-    driver: "local"
-  adminer:
-    driver: "local"
-  aerospike:
-    driver: "local"
-  caddy:
-    driver: "local"
-  elasticsearch-data:
-    driver: "local"

+ 97 - 97
env-example

@@ -1,81 +1,96 @@
 ###########################################################
-# General Setup
+###################### General Setup ######################
 ###########################################################
 
-### Application Path ###################################################################################################
-# Point to your code, will be available at `/var/www`.
+### Paths #################################################
 
-APPLICATION=../
+# Point to the path of your applications code on your host
+APP_CODE_PATH_HOST=../
 
-### PHP Version ########################################################################################################
-# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 72 - 71 - 70 - 56
+# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
+APP_CODE_PATH_CONTAINER=/var/www:cached
 
-PHP_VERSION=72
+# Choose storage path on your machine. For all storage systems
+DATA_PATH_HOST=~/.laradock/data
 
-### PHP Interpreter ####################################################################################################
-# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
+### Drivers ################################################
 
-PHP_INTERPRETER=php-fpm
+# All volumes driver
+VOLUMES_DRIVER=local
 
-### Data Path ##########################################################################################################
-# Choose storage path on your machine. For all storage systems.
+# All Networks driver
+NETWORKS_DRIVER=bridge
 
-DATA_SAVE_PATH=~/.laradock/data
+### Docker compose files ##################################
 
-### Docker compose files ###############################################################################################
-# Select which docker-compose files to include.
-# If using docker-sync. Set the value to: docker-compose.yml:docker-compose.dev.yml:docker-compose.sync.yml
-# Change the separator from : to ; on Windows
+# Select which docker-compose files to include. If using docker-sync append `:docker-compose.sync.yml` at the end
+COMPOSE_FILE=docker-compose.yml
 
+# Change the separator from : to ; on Windows
 COMPOSE_PATH_SEPARATOR=:
-COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml
 
-### Docker Host IP #####################################################################################################
-# Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1`
+### PHP Version ###########################################
+
+# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 72 - 71 - 70 - 56
+PHP_VERSION=72
+
+### PHP Interpreter #######################################
 
+# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
+PHP_INTERPRETER=php-fpm
+
+### Docker Host IP ########################################
+
+# Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1`
 DOCKER_HOST_IP=10.0.75.1
 
-### Remote Interpreter #################################################################################################
-# Choose a Remote Interpreter entry matching name. Default is `laradock`
+### Remote Interpreter ####################################
 
+# Choose a Remote Interpreter entry matching name. Default is `laradock`
 PHP_IDE_CONFIG=serverName=laradock
 
-### Windows Path #######################################################################################################
-# A fix for Windows users, to ensure the application path works.
+### Windows Path ##########################################
 
+# A fix for Windows users, to ensure the application path works
 COMPOSE_CONVERT_WINDOWS_PATHS=1
 
-### Environment ########################################################################################################
-# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
+### Environment ###########################################
 
+# If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
 CHANGE_SOURCE=false
 
-########################################################################################################################
+### Docker Sync ###########################################
+
+# If you are using Docker Sync. For `osx` use 'native_osx', for `windows` use 'unison', for `linux` docker-sync is not required
+DOCKER_SYNC_STRATEGY=native_osx
 
 ###########################################################
-# Containers Customization
+################ Containers Customization #################
 ###########################################################
 
-### WORKSPACE ##########################################################################################################
+### WORKSPACE #############################################
+
 
+WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
+WORKSPACE_COMPOSER_REPO_PACKAGIST=
+WORKSPACE_INSTALL_NODE=true
+WORKSPACE_NODE_VERSION=stable
+WORKSPACE_NPM_REGISTRY=
+WORKSPACE_INSTALL_YARN=true
+WORKSPACE_YARN_VERSION=latest
+WORKSPACE_INSTALL_PHPREDIS=true
+WORKSPACE_INSTALL_WORKSPACE_SSH=false
 WORKSPACE_INSTALL_XDEBUG=false
 WORKSPACE_INSTALL_LDAP=false
 WORKSPACE_INSTALL_SOAP=false
 WORKSPACE_INSTALL_IMAP=false
 WORKSPACE_INSTALL_MONGO=false
 WORKSPACE_INSTALL_AMQP=false
-WORKSPACE_INSTALL_PHPREDIS=false
 WORKSPACE_INSTALL_MSSQL=false
-WORKSPACE_INSTALL_NODE=false
-WORKSPACE_NPM_REGISTRY=
-WORKSPACE_INSTALL_YARN=false
 WORKSPACE_INSTALL_DRUSH=false
 WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
 WORKSPACE_INSTALL_AEROSPIKE=false
 WORKSPACE_INSTALL_V8JS=false
-WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
-WORKSPACE_COMPOSER_REPO_PACKAGIST=
-WORKSPACE_INSTALL_WORKSPACE_SSH=false
 WORKSPACE_INSTALL_LARAVEL_ENVOY=false
 WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
 WORKSPACE_INSTALL_DEPLOYER=false
@@ -93,43 +108,42 @@ WORKSPACE_INSTALL_SWOOLE=false
 WORKSPACE_PUID=1000
 WORKSPACE_PGID=1000
 WORKSPACE_CHROME_DRIVER_VERSION=2.32
-WORKSPACE_NODE_VERSION=stable
-WORKSPACE_YARN_VERSION=latest
 WORKSPACE_TIMEZONE=UTC
 WORKSPACE_SSH_PORT=2222
 
-### PHP_FPM ############################################################################################################
-
+### PHP_FPM ###############################################
+
+PHP_FPM_INSTALL_ZIP_ARCHIVE=true
+PHP_FPM_INSTALL_BCMATH=true
+PHP_FPM_INSTALL_MYSQLI=true
+PHP_FPM_INSTALL_TOKENIZER=true
+PHP_FPM_INSTALL_INTL=true
+PHP_FPM_INSTALL_IMAGEMAGICK=true
+PHP_FPM_INSTALL_OPCACHE=true
+PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
+PHP_FPM_INSTALL_PHPREDIS=true
+PHP_FPM_INSTALL_MEMCACHED=false
 PHP_FPM_INSTALL_XDEBUG=false
 PHP_FPM_INSTALL_IMAP=false
 PHP_FPM_INSTALL_MONGO=false
 PHP_FPM_INSTALL_AMQP=false
 PHP_FPM_INSTALL_MSSQL=false
 PHP_FPM_INSTALL_SOAP=false
-PHP_FPM_INSTALL_ZIP_ARCHIVE=false
-PHP_FPM_INSTALL_BCMATH=false
 PHP_FPM_INSTALL_GMP=false
-PHP_FPM_INSTALL_PHPREDIS=false
-PHP_FPM_INSTALL_MEMCACHED=false
-PHP_FPM_INSTALL_OPCACHE=false
 PHP_FPM_INSTALL_EXIF=false
 PHP_FPM_INSTALL_AEROSPIKE=false
-PHP_FPM_INSTALL_MYSQLI=false
 PHP_FPM_INSTALL_PGSQL=false
-PHP_FPM_INSTALL_TOKENIZER=false
-PHP_FPM_INSTALL_INTL=false
+PHP_FPM_INSTALL_POSTGRES=false
 PHP_FPM_INSTALL_GHOSTSCRIPT=false
 PHP_FPM_INSTALL_LDAP=false
 PHP_FPM_INSTALL_SWOOLE=false
-PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=false
-PHP_FPM_INSTALL_IMAGEMAGICK=false
 PHP_FPM_INSTALL_PG_CLIENT=false
 
-### PHP_WORKER #########################################################################################################
+### PHP_WORKER ############################################
 
 PHP_WORKER_INSTALL_PGSQL=false
 
-### NGINX ##############################################################################################################
+### NGINX #################################################
 
 NGINX_HOST_HTTP_PORT=80
 NGINX_HOST_HTTPS_PORT=443
@@ -138,7 +152,7 @@ NGINX_SITES_PATH=./nginx/sites/
 NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
 NGINX_PHP_UPSTREAM_PORT=9000
 
-### APACHE #############################################################################################################
+### APACHE ################################################
 
 APACHE_HOST_HTTP_PORT=80
 APACHE_HOST_HTTPS_PORT=443
@@ -149,7 +163,7 @@ APACHE_PHP_UPSTREAM_PORT=9000
 APACHE_PHP_UPSTREAM_TIMEOUT=60
 APACHE_DOCUMENT_ROOT=/var/www/
 
-### MYSQL ##############################################################################################################
+### MYSQL #################################################
 
 MYSQL_VERSION=latest
 MYSQL_DATABASE=default
@@ -159,11 +173,11 @@ MYSQL_PORT=3306
 MYSQL_ROOT_PASSWORD=root
 MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
 
-### REDIS ##############################################################################################################
+### REDIS #################################################
 
 REDIS_PORT=6379
 
-### Percona ############################################################################################################
+### Percona ###############################################
 
 PERCONA_DATABASE=homestead
 PERCONA_USER=homestead
@@ -172,13 +186,13 @@ PERCONA_PORT=3306
 PERCONA_ROOT_PASSWORD=root
 PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
 
-### MSSQL ##############################################################################################################
+### MSSQL #################################################
 
 MSSQL_DATABASE=homestead
 MSSQL_PASSWORD=yourStrong(!)Password
 MSSQL_PORT=1433
 
-### MARIADB ############################################################################################################
+### MARIADB ###############################################
 
 MARIADB_DATABASE=default
 MARIADB_USER=default
@@ -187,14 +201,14 @@ MARIADB_PORT=3306
 MARIADB_ROOT_PASSWORD=root
 MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
 
-### POSTGRES ###########################################################################################################
+### POSTGRES ##############################################
 
 POSTGRES_DB=default
 POSTGRES_USER=default
 POSTGRES_PASSWORD=secret
 POSTGRES_PORT=5432
 
-### RABBITMQ ###########################################################################################################
+### RABBITMQ ##############################################
 
 RABBITMQ_NODE_HOST_PORT=5672
 RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
@@ -202,43 +216,43 @@ RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671
 RABBITMQ_DEFAULT_USER=guest
 RABBITMQ_DEFAULT_PASS=guest
 
-### ELASTICSEARCH ######################################################################################################
+### ELASTICSEARCH #########################################
 
 ELASTICSEARCH_HOST_HTTP_PORT=9200
 ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
 
-### KIBANA #############################################################################################################
+### KIBANA ################################################
 
 KIBANA_HTTP_PORT=5601
 
-### MEMCACHED ##########################################################################################################
+### MEMCACHED #############################################
 
 MEMCACHED_HOST_PORT=11211
 
-### BEANSTALKD CONSOLE #################################################################################################
+### BEANSTALKD CONSOLE ####################################
 
 BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
 BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
 BEANSTALKD_CONSOLE_HOST_PORT=2080
 
-### BEANSTALKD #########################################################################################################
+### BEANSTALKD ############################################
 
 BEANSTALKD_HOST_PORT=11300
 
-### SELENIUM ###########################################################################################################
+### SELENIUM ##############################################
 
 SELENIUM_PORT=4444
 
-### MINIO ##############################################################################################################
+### MINIO #################################################
 
 MINIO_PORT=9000
 
-### ADMINER ############################################################################################################
+### ADMINER ###############################################
 
 ADM_PORT=8080
 ADM_INSTALL_MSSQL=false
 
-### PHP MY ADMIN #######################################################################################################
+### PHP MY ADMIN ##########################################
 
 # Accepted values: mariadb - mysql
 
@@ -251,95 +265,81 @@ PMA_PASSWORD=secret
 PMA_ROOT_PASSWORD=secret
 PMA_PORT=8080
 
-### MAILDEV ############################################################################################################
+### MAILDEV ###############################################
 
 MAILDEV_HTTP_PORT=1080
 MAILDEV_SMTP_PORT=25
 
-### VARNISH ############################################################################################################
+### VARNISH ###############################################
 
 VARNISH_CONFIG=/etc/varnish/default.vcl
 VARNISH_PORT=8080
 VARNISH_BACKEND_PORT=8888
 VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
 
-### Varnish ############################################################################################################
+### Varnish ###############################################
 
 # Proxy 1
-
 VARNISH_PROXY1_CACHE_SIZE=128m
 VARNISH_PROXY1_BACKEND_HOST=workspace
 VARNISH_PROXY1_SERVER=SERVER1
 
 # Proxy 2
-
 VARNISH_PROXY2_CACHE_SIZE=128m
 VARNISH_PROXY2_BACKEND_HOST=workspace
 VARNISH_PROXY2_SERVER=SERVER2
 
-### HAPROXY ############################################################################################################
+### HAPROXY ###############################################
 
 HAPROXY_HOST_HTTP_PORT=8085
 
-### JENKINS ############################################################################################################
+### JENKINS ###############################################
 
 JENKINS_HOST_HTTP_PORT=8090
 JENKINS_HOST_SLAVE_AGENT_PORT=50000
 JENKINS_HOME=./jenkins/jenkins_home
 
-### GRAFANA ############################################################################################################
+### GRAFANA ###############################################
 
 GRAFANA_PORT=3000
 
-### BLACKFIRE ##########################################################################################################
-
-# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time.
-# visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
+### BLACKFIRE #############################################
 
+# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time. # visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
 INSTALL_BLACKFIRE=false
 BLACKFIRE_CLIENT_ID=<client_id>
 BLACKFIRE_CLIENT_TOKEN=<client_token>
 BLACKFIRE_SERVER_ID=<server_id>
 BLACKFIRE_SERVER_TOKEN=<server_token>
 
-### AEROSPIKE ##########################################################################################################
+### AEROSPIKE #############################################
 
 AEROSPIKE_SERVICE_PORT=3000
 AEROSPIKE_FABRIC_PORT=3001
 AEROSPIKE_HEARTBEAT_PORT=3002
 AEROSPIKE_INFO_PORT=3003
 
-### RETHINKDB ##########################################################################################################
+### RETHINKDB #############################################
 
 RETHINKDB_PORT=8090
 
-### MONGODB ############################################################################################################
+### MONGODB ###############################################
 
 MONGODB_PORT=27017
 
-### CADDY ##############################################################################################################
+### CADDY #################################################
 
 CADDY_HOST_HTTP_PORT=80
 CADDY_HOST_HTTPS_PORT=443
 CADDY_HOST_LOG_PATH=./logs/caddy
 CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
 
-### LARAVEL ECHO SERVER ################################################################################################
+### LARAVEL ECHO SERVER ###################################
 
 LARAVEL_ECHO_SERVER_PORT=6001
 
-### SOLR ###############################################################################################################
+### SOLR ##################################################
 
 SOLR_VERSION=5.5
 SOLR_PORT=8983
 SOLR_DATAIMPORTHANDLER_MYSQL=false
-
-### DOCKER-SYNC ################################################################################################
-
-# osx: 'native_osx' (default)
-# windows: 'unison'
-# linux: docker-sync not required
-
-DOCKER_SYNC_STRATEGY=native_osx
-
-########################################################################################################################

+ 2 - 2
mariadb/docker-entrypoint-initdb.d/createdb.sql.example

@@ -8,9 +8,9 @@
 #    GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
 #
 ###
-### this sql script is auto run when mariadb container start and $DATA_SAVE_PATH/mariadb not exists.
+### this sql script is auto run when mariadb container start and $DATA_PATH_HOST/mariadb not exists.
 ###
-### if your $DATA_SAVE_PATH/mariadb is exists and you do not want to delete it, you can run by manual execution:
+### if your $DATA_PATH_HOST/mariadb is exists and you do not want to delete it, you can run by manual execution:
 ###
 ###     docker-compose exec mariadb bash
 ###     mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

+ 2 - 2
mysql/docker-entrypoint-initdb.d/createdb.sql.example

@@ -8,9 +8,9 @@
 #    GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
 #
 #
-# this sql script will auto run when the mysql container starts and the $DATA_SAVE_PATH/mysql not found.
+# this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found.
 #
-# if your $DATA_SAVE_PATH/mysql exists and you do not want to delete it, you can run by manual execution:
+# if your $DATA_PATH_HOST/mysql exists and you do not want to delete it, you can run by manual execution:
 #
 #     docker-compose exec mysql bash
 #     mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

+ 2 - 2
percona/docker-entrypoint-initdb.d/createdb.sql.example

@@ -8,9 +8,9 @@
 #    GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
 #
 ###
-### this sql script is auto run when percona container start and $DATA_SAVE_PATH/percona not exists.
+### this sql script is auto run when percona container start and $DATA_PATH_HOST/percona not exists.
 ###
-### if your $DATA_SAVE_PATH/percona is exists and you do not want to delete it, you can run by manual execution:
+### if your $DATA_PATH_HOST/percona is exists and you do not want to delete it, you can run by manual execution:
 ###
 ###     docker-compose exec percona bash
 ###     mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql