diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md
index 3532084..74209cc 100644
--- a/DOCUMENTATION/content/documentation/index.md
+++ b/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/
-#### 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
-```
\ No newline at end of file
+```
diff --git a/DOCUMENTATION/content/getting-started/index.md b/DOCUMENTATION/content/getting-started/index.md
index 095b9ae..2e7ea12 100644
--- a/DOCUMENTATION/content/getting-started/index.md
+++ b/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).
diff --git a/DOCUMENTATION/content/introduction/index.md b/DOCUMENTATION/content/introduction/index.md
index d14094d..dca9b32 100644
--- a/DOCUMENTATION/content/introduction/index.md
+++ b/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:
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
deleted file mode 100644
index 45567e1..0000000
--- a/docker-compose.dev.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: "2"
-
-services:
-
-### Applications Code Container #############################
-
- applications:
- volumes:
- - ${APPLICATION}:/var/www:cached
diff --git a/docker-compose.sync.yml b/docker-compose.sync.yml
index 20bb016..57d7e92 100644
--- a/docker-compose.sync.yml
+++ b/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 #############################################
diff --git a/docker-compose.yml b/docker-compose.yml
index fcfd55a..ffd57b1 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,14 +1,48 @@
-version: '2'
+version: '3'
+
+networks:
+ frontend:
+ driver: ${NETWORKS_DRIVER}
+ backend:
+ driver: ${NETWORKS_DRIVER}
+
+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}
services:
-### Applications Code Container #############################
-
- applications:
- image: tianon/true
-
-### Workspace Utilities Container ###########################
-
+### 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"
diff --git a/env-example b/env-example
index 12ed88a..da9d5ce 100644
--- a/env-example
+++ b/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=../
+
+# 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
+
+# Choose storage path on your machine. For all storage systems
+DATA_PATH_HOST=~/.laradock/data
+
+### Drivers ################################################
+
+# All volumes driver
+VOLUMES_DRIVER=local
+
+# All Networks driver
+NETWORKS_DRIVER=bridge
+
+### Docker compose files ##################################
+
+# 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=:
+
+### PHP Version ###########################################
-### 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 #######################################
+# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
PHP_INTERPRETER=php-fpm
-### Data Path ##########################################################################################################
-# Choose storage path on your machine. For all storage systems.
+### Docker Host IP ########################################
-DATA_SAVE_PATH=~/.laradock/data
-
-### 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
-
-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`
-
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=
BLACKFIRE_CLIENT_TOKEN=
BLACKFIRE_SERVER_ID=
BLACKFIRE_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
-
-########################################################################################################################
diff --git a/mariadb/docker-entrypoint-initdb.d/createdb.sql.example b/mariadb/docker-entrypoint-initdb.d/createdb.sql.example
index 243041c..9763cc0 100644
--- a/mariadb/docker-entrypoint-initdb.d/createdb.sql.example
+++ b/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
diff --git a/mysql/docker-entrypoint-initdb.d/createdb.sql.example b/mysql/docker-entrypoint-initdb.d/createdb.sql.example
index 5567985..6420afb 100644
--- a/mysql/docker-entrypoint-initdb.d/createdb.sql.example
+++ b/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
diff --git a/percona/docker-entrypoint-initdb.d/createdb.sql.example b/percona/docker-entrypoint-initdb.d/createdb.sql.example
index 10b579c..82d4f4c 100644
--- a/percona/docker-entrypoint-initdb.d/createdb.sql.example
+++ b/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