diff --git a/README.md b/README.md
index e4e93557..4a66adc7 100644
--- a/README.md
+++ b/README.md
@@ -53,6 +53,7 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
- [Run a Docker Virtual Host](#Run-Docker-Virtual-Host)
- [Find your Docker IP Address](#Find-Docker-IP-Address)
- [Use custom Domain](#Use-custom-Domain)
+ - [Enable Global Composer Build Install](#Enable-Global-Composer-Build-Install)
- [Install Prestissimo](#Install-Prestissimo)
- [Install Node + NVM](#Install-Node)
- [Debugging](#debugging)
@@ -608,7 +609,7 @@ It should be like this:
...
```
-2 - Re-build the containers docker-compose build workspace php-fpm
+2 - Re-build the containers `docker-compose build workspace php-fpm`
@@ -800,9 +801,7 @@ It should be like this:
...
```
-2 - Re-build the containers docker-compose build workspace php-fpm
-
-3 - Use it
+2 - Re-build the containers `docker-compose build workspace php-fpm`
@@ -906,17 +905,16 @@ server_name laravel.dev;
```
+
-
-### Install Prestissimo
+
+### Enable Global Composer Build Install
-[Prestissimo](https://github.com/hirak/prestissimo) is a plugin for composer which enables parallel install functionality.
+To enable Running Global Composer Install during the Build:
-To install Prestissimo in the Workspace container
+1 - open the `docker-compose.yml` file
-1 - Open the `docker-compose.yml` file
-
-2 - Search for the `INSTALL_PRESTISSIMO` argument under the Workspace Container and set it to `true`
+2 - search for the `COMPOSER_GLOBAL_INSTALL` argument under the Workspace Container and set it to `true`
It should be like this:
@@ -925,11 +923,37 @@ It should be like this:
build:
context: ./workspace
args:
- - INSTALL_PRESTISSIMO=true
+ - COMPOSER_GLOBAL_INSTALL=true
...
```
+3 - now add your dependencies to `workspace/composer.json`
+
+4 - rebuild the Workspace Container `docker-compose build workspace`
+
+
+
+
+
+
+### Install Prestissimo
+
+[Prestissimo](https://github.com/hirak/prestissimo) is a plugin for composer which enables parallel install functionality.
+
+1 - Enable Running Global Composer Install during the Build:
+
+Click on this [Enable Global Composer Build Install](#Enable-Global-Composer-Build-Install) and do steps 1 and 2 only then continue here.
+
+2 - Add prestissimo as requirement in Composer:
+
+a - now open the `workspace/composer.json` file
+
+b - add `"hirak/prestissimo": "^0.3"` as requirement
+
+c - rebuild the Workspace Container `docker-compose build workspace`
+
+
+
-3 - Re-build the container docker-compose build workspace
### Install Node + NVM
@@ -951,7 +975,7 @@ It should be like this:
...
```
-3 - Re-build the container docker-compose build workspace
+3 - Re-build the container `docker-compose build workspace`
diff --git a/docker-compose.yml b/docker-compose.yml
index 37b417f1..ab3dc0f5 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -11,7 +11,7 @@ services:
- INSTALL_MONGO=false
- INSTALL_XDEBUG=false
- INSTALL_NODE=false
- - INSTALL_PRESTISSIMO=false
+ - COMPOSER_GLOBAL_INSTALL=false
volumes_from:
- volumes_source
tty: true
diff --git a/workspace/Dockerfile b/workspace/Dockerfile
index 62ba840a..c9af47d6 100644
--- a/workspace/Dockerfile
+++ b/workspace/Dockerfile
@@ -59,44 +59,71 @@ RUN apt-get update && \
nano \
&& apt-get clean
-# Composer: Install composer and add its bin to the PATH.
+#####################################
+# Composer:
+#####################################
+
+# Install composer and add its bin to the PATH.
RUN curl -s http://getcomposer.org/installer | php && \
echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc && \
mv composer.phar /usr/local/bin/composer
-ARG INSTALL_PRESTISSIMO=true
-ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
+# Add the composer.json
+ADD ./composer.json /root/.composer/composer.json
+
+# Check if global install need to be runned
+ARG COMPOSER_GLOBAL_INSTALL=true
+ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
- # Prestissimo: Install Prestissimo (A Composer parallel install plugin)
- composer global require "hirak/prestissimo:^0.3" \
+ # run the install
+ composer global install \
;fi
+
+#####################################
+# MongoDB:
+#####################################
+
+# Check if Mongo needs to be installed
ARG INSTALL_MONGO=true
ENV INSTALL_MONGO ${INSTALL_MONGO}
RUN if [ ${INSTALL_MONGO} = true ]; then \
- # MongoDB: Install the mongodb extension
+ # Install the mongodb extension
pecl install mongodb && \
- echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
+ echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
;fi
+#####################################
+# xDebug:
+#####################################
+
+# Check if xDebug needs to be installed
ARG INSTALL_XDEBUG=true
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
- # XDebug: Load the xdebug extension only with phpunit commands
+ # Load the xdebug extension only with phpunit commands
apt-get install -y --force-yes php7.0-xdebug && \
- sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
- echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \
+ sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
+ echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \
;fi
+#####################################
+# Node / NVM:
+#####################################
+
+# Check if NVM needs to be installed
ARG INSTALL_NODE=true
ENV INSTALL_NODE ${INSTALL_NODE}
RUN if [ ${INSTALL_NODE} = true ]; then \
- # Node: Install nvm (A Node Version Manager) and use it to install NodeJS
+ # Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash \
;fi
+# Again check if NVM needs to be installed
+# I had to split this condifiton link this because when I get it inside the above if statment is refuses to work!
ENV if [ ${INSTALL_NODE} = true ]; then \
- # I had to split this condifiton link this because when I get it inside the above if statment is refuses to work!
+ # Set the ENV
NVM_DIR=/root/.nvm \
+ # Install NodeJS with NVM
RUN . ~/.nvm/nvm.sh && \
nvm install stable && \
nvm use stable && \
diff --git a/workspace/composer.json b/workspace/composer.json
new file mode 100644
index 00000000..0c1370f3
--- /dev/null
+++ b/workspace/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+
+ }
+}