瀏覽代碼

Update Improve MAC speed docs

Mahmoud Zalt 7 年之前
父節點
當前提交
69ccd74d2e
共有 1 個文件被更改,包括 98 次插入89 次删除
  1. 98 89
      DOCUMENTATION/content/documentation/index.md

+ 98 - 89
DOCUMENTATION/content/documentation/index.md

@@ -5,6 +5,8 @@ weight: 3
 ---
 
 
+
+
 <a name="List-current-running-Containers"></a>
 ## List current running Containers
 ```bash
@@ -153,88 +155,8 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
 
 
 
-<br>
-<a name="Docker-Sync"></a>
-
-## Speed up with docker-sync
-
-Docker on the Mac [is slow](https://github.com/docker/for-mac/issues/77), at the time of writing. Especially for larger projects, this can be a problem. The problem is [older than March 2016](https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076) - as it's a such a long-running issue, we're including it in the docs here.
-
-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
-
-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`
-
-1) Configure your Laradock environment as you would normally do and test your application to make sure that your sites are running correctly.
-
-2) Make sure to set `DOCKER_SYNC_STRATEGY` on the `.env`. Read the [syncing strategies](https://github.com/EugenMayer/docker-sync/wiki/8.-Strategies) for details.
-```
-# osx: 'native_osx' (default)
-# windows: 'unison'
-# linux: docker-sync not required
-
-DOCKER_SYNC_STRATEGY=native_osx
-```
-
-2) Install the docker-sync gem on the host-machine:
-```bash
-./sync.sh install
-```
-3) 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:
-```bash
-./sync.sh down
-```
-
-#### 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`:
-
-```bash
-alias devup="cd /PATH_TO_LARADOCK/laradock; ./sync.sh up nginx mysql" #add your services
-alias devbash="cd /PATH_TO_LARADOCK/laradock; ./sync.sh bash"
-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
- 
-Opening bash on the workspace container (to run artisan for example):
- ```bash
- ./sync.sh bash
- ```
-Manually triggering the synchronization of the files:
-```bash
-./sync.sh sync
-```
-Removing and cleaning up the files and the docker-sync container. Use only if you want to rebuild or remove docker-sync completely. The files on the host will be kept untouched.
-```bash
-./sync.sh clean
-```
-
-**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.
-- If a container cannot access the files on docker-sync, you may need to set a user on the Dockerfile of that container with an id of 1000 (this is the UID that nginx and php-fpm have configured on laradock). Alternatively, you may change the permissions to 777, but this is **not** recommended.
-
-Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/wiki) for more details.
-
 <br>
 <a name="Add-Docker-Images"></a>
-
 ## Add more Software (Docker Images)
 
 To add an image (software), just edit the `docker-compose.yml` and add your container details, to do so you need to be familiar with the [docker compose file syntax](https://docs.docker.com/compose/compose-file/).
@@ -1494,7 +1416,11 @@ Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requ
 <a name="Speed-MacOS"></a>
 ## Improve speed on MacOS
 
-Sharing code into Docker containers with osxfs have very poor performance compared to Linux. Likely there are some workarounds:
+Docker on the Mac [is slow](https://github.com/docker/for-mac/issues/77), at the time of writing. Especially for larger projects, this can be a problem. The problem is [older than March 2016](https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076) - as it's a such a long-running issue, we're including it in the docs here.
+
+So since sharing code into Docker containers with osxfs have very poor performance compared to Linux. Likely there are some workarounds:
+
+
 
 ### Workaround A: using dinghy
 
@@ -1514,9 +1440,99 @@ Quick Setup giude, (we recommend you check their docs)
 
 
 
-
+<br>
+<a name="Docker-Sync"></a>
 ### Workaround B: using d4m-nfs
 
+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
+
+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
+
+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`
+
+1) Configure your Laradock environment as you would normally do and test your application to make sure that your sites are running correctly.
+
+2) Make sure to set `DOCKER_SYNC_STRATEGY` on the `.env`. Read the [syncing strategies](https://github.com/EugenMayer/docker-sync/wiki/8.-Strategies) for details.
+```
+# osx: 'native_osx' (default)
+# windows: 'unison'
+# linux: docker-sync not required
+
+DOCKER_SYNC_STRATEGY=native_osx
+```
+
+2) Install the docker-sync gem on the host-machine:
+```bash
+./sync.sh install
+```
+3) 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:
+```bash
+./sync.sh down
+```
+
+##### 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`:
+
+```bash
+alias devup="cd /PATH_TO_LARADOCK/laradock; ./sync.sh up nginx mysql" #add your services
+alias devbash="cd /PATH_TO_LARADOCK/laradock; ./sync.sh bash"
+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
+ 
+Opening bash on the workspace container (to run artisan for example):
+ ```bash
+ ./sync.sh bash
+ ```
+Manually triggering the synchronization of the files:
+```bash
+./sync.sh sync
+```
+Removing and cleaning up the files and the docker-sync container. Use only if you want to rebuild or remove docker-sync completely. The files on the host will be kept untouched.
+```bash
+./sync.sh clean
+```
+
+
+##### 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.
+- If a container cannot access the files on docker-sync, you may need to set a user on the Dockerfile of that container with an id of 1000 (this is the UID that nginx and php-fpm have configured on laradock). Alternatively, you may change the permissions to 777, but this is **not** recommended.
+
+Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/wiki) for more details.
+
+
+
+
+
+
+
+
+<br>
+
+#### B.2: using the d4m-nfs tool
+
 [D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one.
 
 1) Update the Docker [File Sharing] preferences:
@@ -1556,15 +1572,8 @@ docker-compose up ...
 
 
 
-### Other good workarounds:
-
-- [docker-sync](https://github.com/EugenMayer/docker-sync)
-- Add more here..
-
-
 
 
-More details about this issue [here](https://github.com/docker/for-mac/issues/77).