From 2a02ed73e3373e9ad3ecfc6145a41f307ef77bda Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Mon, 25 Jul 2016 02:48:38 +0300 Subject: [PATCH] Refactor the workspace container --- workspace/Dockerfile | 58 +++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 516344f9..8998027c 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1,3 +1,9 @@ +# +#-------------------------------------------------------------------------- +# Image Setup +#-------------------------------------------------------------------------- +# + FROM phusion/baseimage:latest MAINTAINER Mahmoud Zalt @@ -11,6 +17,12 @@ ENV LC_CTYPE=UTF-8 ENV LANG=en_US.UTF-8 ENV TERM xterm +# +#-------------------------------------------------------------------------- +# Software's Installation +#-------------------------------------------------------------------------- +# + # Install "software-properties-common" (for the "add-apt-repository") RUN apt-get update && apt-get install -y \ software-properties-common @@ -19,7 +31,7 @@ RUN apt-get update && apt-get install -y \ RUN add-apt-repository -y \ ppa:ondrej/php -# Install PHP-CLI 7, some PHP extentions and some useful Tools with APT +# Install "PHP-CLI 7", "PHP extentions", "useful Tools" RUN apt-get update && apt-get install -y --force-yes \ php7.0-cli \ php7.0-common \ @@ -50,38 +62,45 @@ RUN apt-get update && apt-get install -y --force-yes \ nano \ pkg-config -# Clean up, to free some space +# Clean up now, to free up some space RUN apt-get clean -# remove load xdebug extension (only load on phpunit command) -RUN sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini - -# Add bin folder of composer to PATH. -RUN echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc - -# Install Composer +# 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 -# Load xdebug Zend extension with phpunit command -RUN echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc +# Prestissimo: Install Prestissimo (A Composer parallel install plugin) +ARG INSTALL_PRESTISSIMO=false +RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \ + composer global require "hirak/prestissimo:^0.3"; \ + fi -# Install mongodb extension -RUN pecl install mongodb -RUN echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini +# MongoDB: Install the mongodb extension +RUN pecl install mongodb \ + && echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini -# Install nvm (Node Version Manager) +# XDebug: Load the xdebug extension only with phpunit commands +RUN 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 + +# NVM: Install nvm (A Node Version Manager) RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash - ENV NVM_DIR=/root/.nvm -# Install stable node +# Node: Install node RUN . ~/.nvm/nvm.sh \ && nvm install stable \ && nvm use stable \ && nvm alias stable \ && npm install -g gulp bower +# +#-------------------------------------------------------------------------- +# Final Touch +#-------------------------------------------------------------------------- +# + # Source the bash RUN . ~/.bashrc @@ -90,8 +109,3 @@ RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* WORKDIR /var/www/laravel -# Install optional software -ARG INSTALL_PRESTISSIMO=false -RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \ - composer global require "hirak/prestissimo:^0.3"; \ - fi